浏览某网站时候看都如下一道(微软)面试题:
★假设你有一个用1001个整数组成的数组,这些整数是任意排列的,但是你知道所有的整数都在1到1000(包括1000)之间。此外,除一个数字出现两 次外,其他所有数字只出现一次。假设你只能对这个数组做一次处理,用一种算法找出重复的那个数字。如果你在运算中使用了辅助的存储方式,那么你能找到不用 这种方式的算法吗?
本人想了将近15分钟,终于有了答案。 (有兴趣的思考一下)我的解答用淡黄色字体显示,要看的时候请选择圈选。
(答案在这下)
-
-
-
把所有1001个数字加起来,再减去(西格玛1 to 1000),结果就是答案(那个出现了2次的数)。
-
-
-
(答案在这上)