100亿个大小为1到10亿的数,这100亿个数字里只有一个数出现的次数是奇数次,如何找出这个数字呢? 举报 理由 举报 取消 2017年12月17日 4 条回复 1119 次浏览 技术,数据,计算机,面试
回复 ( 4 )
只有一个数字出现奇数次,数字的总个数为何会是偶数?
从第一个数开始,一直异或到最后一个数,剩下的值是几 结果就是几 当然,这个方法只适用于只有一个数奇数的情况。
bitmap映射10亿个数。初始置0。向对应位异或1。奇数次异或1后结果仍为1。偶数次异或1后为0。0~10亿的数,128M内存足以表示了。全部过完就知道仅剩的1在哪,就是那个数字。时间复杂度O(n)
———
看到 @通信员小王的答案……果然自己还是思维定势了……他的更好一些~
转换成字符串啊,数据库啥的,别占着内存