1.有1到10w这10w个数,去除2个并打乱次序,如何找出那两个数。(不准用位图!!)
2.腾讯服务器每秒有2w个QQ号同时上线,找出5min内重新登入的qq号并打印出来。
http://topic.csdn.net/u/20071023/12/720a50bc-f9bc-4e1d-b93f-18748ba7b1ed.html?49602
以下是我自己的伪代码,以及思路--
题目一的位图方法:
1.我们可以使用一个10W位的位图数组来存储这个10W个数,伪代码如下
//初始化所有的bit都为0
for i =[0:n)
bit[i] = 0
//当属被读进来后,bit 为1
for each n in the input string
bit[i] =1
for i = [0:n)
if(bit[i] == 0)
output the i;
题目一的非位图方法:
x+y = 1+...+10w - Sum(each input number) = SUM; // 这个值可以通过循环的出来
xy= 1*...*10w/Mutl(each input number) = MUTL;// 这个值可以通过循环的出来
x(SUM -x) = MUTL
然后用已有的解一元二次方程的方法把x,y算出来。