面试题JAVA:给定list包含1-100中的95个数字,如何找出5个剩下的??

面试题JAVA:给定list包含1-100中的95个数字,如何找出5个剩下的??
今天去面试的笔试题。

个人认为,提高效率用空间换时间。
先定义一个int数组,大小101。
遍历list,当list.get(i)的值为1时 复制int[1]=1; 如果list.get(i)为99时,int[99]=1; 等等。
然后遍历数组 输出数组中为0的序号index。即是剩下的5个数字。
代码如下:
Integer[] array = new Integer[101];
for(Integer i:list){
array[i]=1;
}

for(int j=1;j<101;j++){
if(array[i]==0){//输出剩下的5个
System.out.println(i);
}
}

个人认为此效率最高。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-01
public static void main(String[] args) {
// TODO Auto-generated method stub
List list = new ArrayList();
for (int i = 0; i < 100; i++) {
list.add(i + 1);
}
List twoList = new ArrayList();
twoList.addAll(list);
for (int j = 0; j < 5; j++) {
twoList.remove(new Random().nextInt(99));
}
System.out.println("之前list:" + list);
System.out.println("twoList:" + twoList);
list.removeAll(twoList);
System.out.println("剩下的5个数字:"+list);

}本回答被提问者采纳
第2个回答  2010-05-26
最简单的方法,把List读一遍不就行了
第3个回答  2010-05-26
1-100每个数字都到List里面去找一遍,没找到的就是剩下的。
相似回答