第一行是一个整数n(1£n£1000000),第二行是n个整数,每两个整数之间有一个空格,题目保证有且仅有两个不同的整数出现一次,其他的整数都是出现两次。输出两个整数,分别代表两个单身狗伪造的号码,中间有一个空格,并且较小号码的先输出。
6 2 2 1 1 4 3
3 4
以下代码正确,但是OJ上运行时间超限
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class p1406 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int []a=new int[n]; for(int i=0;i<n;i++){ a[i]=sc.nextInt(); } findOnlyNum(a); } //遍历两次取出没有找到的相同的数字 public static List findOnlyNum(int[] array){ List<Integer> list = new ArrayList<Integer>(); for(int i = 0 ;i<array.length;i++){ int j = 0; for(;j<=array.length;j++){ if(i==j){ continue; } if(j==array.length){ break; } if(array[i]==array[j]){ break; } } if(j==array.length){//到末尾仍然没找到相同的 list.add(array[i]); } } for(int i=0;i<list.size();i++){ System.out.print(list.get(i)+" "); } return list; } }