一道面试题,找出1-100中没有插入的两个数

2025-02-01 19:52:51
推荐回答(5个)
回答1:

恩 将下我的思路吧: (算法自己实现,不会再联系我):

假设这连个数是a和b:
1. 对数组中的98个元素,进行求和为c, a+b = 5050-c
2. 1到100求平方在求和,数组中98个元素求平方在求和,求差 a2+b2=...
3. 这就类似一个一元二次方程,在解方程就可以了

回答2:

public class Test {

public static void main(String[] args) {
List list=new ArrayList();
for(int i=1;i<=100;i++){
list.add(i);
}
int[] source=new int[98];
for(int i=0;i int position=(int)(Math.random()*list.size());
source[i]=(Integer)list.get(position);
list.remove(position);
}
// for(int i=0;i// System.out.println(source[i]);
// }
//到这里source中放入了1~100随机的98个数字并且打乱了顺序
test(source);
}

public static void test(int[] source){
HashMap map=new HashMap();
for(int i=0;i map.put(source[i], source[i]);
}
for(int i=1;i<=100;i++){
if(!map.containsKey(i)){
System.out.println(i+"不在数组中");
}
}
}
}

回答3:

先将这98个数排序,然后对100个数用折半查找,找出那两个不再其中的

回答4:

先分别排序两个数组,然后再比较

回答5:

这是道编程题吧。。