几个找数字的小题目

N+1个数字,其中有一个是重复的,要求找出来。
方法:累加后的和减掉1~N的和就是重复的那个数字。
方法2:使用bitmap或者hash表

1~N中缺少一个数字,要求找出来
方法1:累加后的和被1~N来减,就是那个数字
方法2:hash表。

N个数字是偶数对出现的,有个数字是单独出现的,要求找出来。
方法:所有数字进行异或,最后的值就是那个数字(a^a = 0)

N个数字是偶数对出现的,有两个数字(不相同)是奇数次出现的,要求找出来。
方法:
1 不断异或求得值为X,则X=a^b(其中ab就是那两个奇数次出现的数字)
2. 因为a!=b,所以X!=0。假设X的第K位为1
3. 则令X和所有第K位为1的数字进行异或,所得的数字即为ab中的一个。
4. X和3的结果进行异或就是ab种的另外一个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值