数据结构面试题(1)

本文探讨了两种场景下寻找缺失数字的算法实现。一是从1到10万的连续整数中去除两个数字并打乱顺序后,如何高效找出这两个数字;二是如何在大量QQ号中快速识别出5分钟内重复登录的账号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.有1到10w这10w个数,去除2个并打乱次序,如何找出那两个数。(不准用位图!!)


2.腾讯服务器每秒有2w个QQ号同时上线,找出5min内重新登入的qq号并打印出来。

 

http://topic.youkuaiyun.com/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算出来。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值