数据结构面试题(1)

来源:互联网 发布:经济学数据 编辑:程序博客网 时间:2024/05/01 23:21

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算出来。