更多JAVA版答案移步我的博客:蓝桥杯JAVA版答案汇总
本题考查
排序
思路
首先JAVA无法开长度为100000的数组,所以这个题我使用链表。
读取每一行并按照空格进行分隔,然后遍历这个数组将合法元素转换成整数并加入临时链表,数组遍历完后将临时数组加入汇总链表。再对汇总链表进行排序,遍历即可找到答案。
AC代码
import java.util.Collections;
import java.util.LinkedList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scaner = new Scanner(System.in);
int lineNum = scaner.nextInt();
LinkedList<Integer> list = new LinkedList<Integer>();
scaner.nextLine();
for (int i = 0; i < lineNum; i++) {
String[] strArr = scaner.nextLine().split(" ");
LinkedList<Integer> tempList = new LinkedList<Integer>();
for (int j = 0; j < strArr.length; j++)
if(!strArr[j].equals(" ")&&!strArr[j].equals(""))
tempList.add(Integer.parseInt(strArr[j]));
list.addAll(tempList);
}
scaner.close();
Collections.sort(list);
int repition=-1,omit=-1,pre=-1;
for(int i:list) {
if(pre!=-1) {
if(pre==i) repition=i;
if(i-pre>1) omit=i-1;
if(repition!=-1&&omit!=-1) break;
}
pre=i;
}
System.out.println(omit+" "+repition);
}
}