emm,一上来没看懂题目在说啥,我丢,然后人家讲了一顿,发现不知道输入的结束条件,怎么来处,这是一开始的思路,不太对,一开始只想到了数组接收,但是数组接收输入的话,你没办法判断输入的终止条件呀,哥们
package Lanqiao;import java.util.Scanner;/*** @author zb* date2025/3/21 19:19*/
public class L205 {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();
// 记录重复的号int distinct = -1 ;
// 记录断号int div = -1 ;
// 个数不大于100个int a[] =new int[100];int i = 0 ;while (in.nextInt()!=null){a[i] =in.nextInt();}for (int j = 0; j <n ; j++) {System.out.println(a[i]);}int m = in.nextInt();in.close();}
}
理输出结束的位置
看了一遍解析,自己再做一遍
看着好像会了,做的时候就发现Collection.怎么没有sort函数呢
oh,原来是Collections.sort();
输入的时候不知道该怎么接收
写成了list.add(in.nextLine().split(" "))
emm报错了,in.nextLine().split(" ")得到的其实是一个字符串数组
还有,判断哪个数是断号那个数字是重号的时候,又不会便利了
写成了
for (Integer i:list) {}
然后就不知道该怎么判断了,我丢,忘了for循环怎么便利了,哎
中间看了好几次大佬的代码,【捂脸】
package Lanqiao;import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Scanner;/*** @author zb* date2025/3/21 19:19*/
public class L205 {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();
// 记录重复的号int distinct = -1 ;
// 记录断号int div = -1 ;
// 个数不大于100个
//in.nextLine()吞掉nextInt()后面的换行符号
in.nextLine();ArrayList<Integer> list =new ArrayList<>();
// n代表输入发数据的行数for (int i = 0; i <n ; i++) {
// 用nextLine()来接收输入的话// 增强for循环来便利数组for (String s:in.nextLine().split(" ")) {
// 将字符串转换成Integer类型添加到集合中list.add(Integer.valueOf(s));}}
// 集合排序
// mn分别用来存放断号和重号int m = -1;n = -1;Collections.sort(list);
// 便利集合for (int i = 1; i < list.size() ; i++) {
// 如果前一个和后一个相等,那么这两个号码就是重复的if(list.get(i).equals(list.get(i-1))){n = list.get(i);}
// 如果后面的号码比前面的号码要大2,就代表两个数中间是断号else if(list.get(i)-list.get(i-1)==2){m =list.get(i)-1;}}System.out.println(m+" "+n);in.close();}
}