分析:先对输入进行排序,然后遍历找到
进步:
- 由于无法知道nums[]的大小,所以要用arraylist.add来存储
- 对于一行一行输入的,由于不知道每行输入的个数,所以必须先将其用String存储,再split分开
- 要将String的s[i]转化为数字,用Integer.parseInt(s[i])(注:char则是用toCharArray)
- 对arraylist的排序用Collections.sort(list);
- 对list取索引值是list.get(i)
- 因为list中用的是包装类,如果直接用==会比较地址值,所以要用equals来比较内容值(注:之所以调试的时候用==可以,是因为Integer在-128~127内的时候==和equals的判断结果是一样的,但是一旦超出,就会出错!)
import java.util.Scanner;
import java.util.ArrayList;
// 1:无需package
// 2: 类名必须Main, 不可修改
import java.util.Collections;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n=scan.nextInt();
scan.nextLine();
ArrayList<Integer> list=new ArrayList<>();
for(int i=0;i<n;i++){
String line=scan.nextLine();
String[] s=line.split(" ");
for (int j = 0; j < s.length; j++) {
list.add(Integer.parseInt(s[j]));
}
}
Collections.sort(list);
int a=0,b=0;
for(int i=1;i<list.size();i++){
if(list.get(i)-list.get(i-1)==2){
a=list.get(i)-1;
//list要用equals而不是用==
}else if(list.get(i).equals(list.get(i-1))){
b=list.get(i);
}
}
System.out.println(a+" "+b);
scan.close();
}
}