关注
答案解释里说的模棱两可的,首先应该是 ret&(-ret),该运算的目的时为了找到两个数字的二进制位中第一个不相同二进制位,然后根据这个位置进行分组, ret&(-ret)也可以理解为 mask=1,while(ret&mask==0)mask<<=1。然后根据这个位置,在第二次进行for循环的时候,将原数组所有的元素根据i位置的不同进行分组并进行异或运算,由于其他的数字出现两次所以异或的二进制位结果会抵消掉,即n^n=0,所以最后的结果为我们要求的其中一个数num1^0=num1 [这里的0即为其他进入该分组且重复2次的数字异或的最后结果n^n^m^m....=0,并且无视元素顺序,结果都一样,可通过写demo证实],所以通过if-else进行分两组后求出我们需要的答案。
8
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
正在热议
# 拼多多求职进展汇总 #
238838次浏览 2043人参与
# 实习,投递多份简历没人回复怎么办 #
2444093次浏览 34770人参与
# 北方华创开奖 #
67622次浏览 555人参与
# 25届秋招总结 #
418320次浏览 4200人参与
# ai智能作图 #
32499次浏览 400人参与
# 地方国企笔面经互助 #
7181次浏览 17人参与
# 阿里云管培生offer #
64112次浏览 1764人参与
# 虾皮求职进展汇总 #
96729次浏览 784人参与
# 我在牛爱网找对象 #
75068次浏览 556人参与
# 机械求职避坑tips #
24028次浏览 251人参与
# 发工资后,你做的第一件事是什么 #
9849次浏览 45人参与
# 25届机械人为了秋招做了哪些准备? #
26646次浏览 365人参与
# 投格力的你,拿到offer了吗? #
47703次浏览 337人参与
# 我的实习求职记录 #
6138751次浏览 84044人参与
# 投递实习岗位前的准备 #
1192634次浏览 18502人参与
# 机械人怎么评价今年的华为 #
158254次浏览 1354人参与
# 实习想申请秋招offer,能不能argue薪资 #
36688次浏览 310人参与
# 实习与准备秋招该如何平衡 #
725238次浏览 8566人参与
# 华为工作体验 #
112145次浏览 868人参与
# 在职场上,你最讨厌什么样的同事 #
6327次浏览 92人参与
# 如果再来一次,你还会选择这个工作吗? #
117840次浏览 1160人参与
# 国央企笔面经互助 #
88765次浏览 897人参与