有一个数组,只有一个数没重复,其他都是重复的,如何找出这…

有一个数组,只有一个数没重复,其他都是重复的,如何找出这个数。我说用hashmap以数值为key,次数为value。遍历一次,把数都放到map里,然后再遍历hashmap,找到value为1的。貌似面试官不满意,还有更简单的吗?

衡山弟子:m

程序猿.他爱着大海:大哥 异或 这题都考烂了

俞莲舟:异或就行了

北京奇安信科技有限公司员工:一个数异或同一个数两次,结果还是这个数

无能狂怒:一个异或知道就会做不知道就不会做,不知道这种题考的有什么意义,脑筋急转弯而已

衡山弟子:奇数次重复呢?

程序猿.华雄:说的是重复 又没说重复几次 异或搞不定吧

张飞:1 2 2 2 3 3 3?

程序猿.华山弟子:剑指offer里有吧…?

楼主:之前还问快速排序,真无聊

中兴通讯员工:现在都有出现三次的题目了

欧鹏:先把所有数的异或求出来,再遍历数组,算出除了这个数的异或,再把这个异或和之前的异或结果异或一下,最终不为0的那个数就是出现一次的数。算法复杂度O(n)

蚂蚁金服员工:这题都不会,还面个毛

程序猿.常凯申:这个题考的就是位运算和异或,这都不知道可见基础有多差

低压锅蒂亚戈:这种题目,用本科数字电路里的真值表,不管数字重复几次,都能处理

少林弟子:本质上是统计二进制每一位上1的个数,看是不是重复的次数,不是的就是属于没有重复的那个数的

拼多多员工:45MA年薪百万的程序员算法就这水平?

弗罗伦蒂洛:异或!!!这种题想都别想,直接位运算

拼多多员工:这个数都知道了还要你求?

欧鹏:这个数指的是遍历时候遍历到的数

拼多多员工:那你这个算法的复杂度是o(n²)

衡山弟子:如何界定重复多少次?

硕大师:m学习了

程序猿.华雄:搞清楚,人家可没说重复的那些数重复的次数都是一样的,有的重复3次,有的重复4次,都叫重复。来来来,上面的数电课代表把你的真值表画出来

楼主:吓到了,重复三次能用异或?

楼主:都不看下,我又没说重复两次

百度员工:重复多次的可以转二进制,用数组存各二进制位的和,遍历完对各个位置取模,剩下的再转成十进制就行了

程序猿.华雄:只要重复次数明确,比如都重复两次,都重复3次,都可以异或解决。重复次数不一致没法异或街

蚂蚁金服员工:你肯定是没有和面试官交流,三次有三次的解法,别杠好吧?

蚂蚁金服员工:我可没说一定要抑或,这本来就是顺带考察你的沟通能力

楼主:没说重复几次

驾鹤西去:审题审题,题目还没看清楚就叫

程序猿.他爱着大海:大哥 异或 这题都考烂了

无能狂怒:一个异或知道就会做不知道就不会做,不知道这种题考的有什么意义,脑筋急转弯而已