面试题JAVA:给定list包含1-100中的95个数字,如何找出5个剩下的??
答案:4 悬赏:80 手机版
解决时间 2021-01-20 12:21
- 提问者网友:心如荒岛囚我终老
- 2021-01-20 03:37
面试题JAVA:给定list包含1-100中的95个数字,如何找出5个剩下的??
最佳答案
- 五星知识达人网友:逃夭
- 2021-01-20 04:43
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);
}
// 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);
}
全部回答
- 1楼网友:佘樂
- 2021-01-20 08:44
最简单的方法,把List读一遍不就行了
- 2楼网友:第四晚心情
- 2021-01-20 07:31
1-100每个数字都到List里面去找一遍,没找到的就是剩下的。
- 3楼网友:爱难随人意
- 2021-01-20 06:22
个人认为,提高效率用空间换时间。
先定义一个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);
}
}
个人认为此效率最高。
先定义一个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);
}
}
个人认为此效率最高。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯