关注
答案解释里说的模棱两可的,首先应该是 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
相关推荐
01-07 11:46
Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的付费上班经历 #
2819次浏览 62人参与
# 如果不上班,你会去做什么 #
1193次浏览 48人参与
# MiniMax求职进展汇总 #
1187次浏览 25人参与
# 参加哪些竞赛对找工作有帮助? #
1638次浏览 31人参与
# 工作压力大,你会干什么? #
1369次浏览 42人参与
# 为了入行xx岗,我学了__ #
1000次浏览 17人参与
# 职场新人体验 #
160034次浏览 1142人参与
# 你们的毕业论文什么进度了 #
1235153次浏览 9913人参与
# 拿到offer之后,可以做些什么 #
84218次浏览 438人参与
# 硬件/芯片公司工作体验 #
142362次浏览 946人参与
# 你觉得面试是靠实力还是靠运气 #
27327次浏览 305人参与
# 当你面对裁员会如何? #
353090次浏览 2857人参与
# 生物制药/化工校招攻略 #
72989次浏览 338人参与
# 牛客十周岁生日快乐 #
204014次浏览 1914人参与
# 哪些公司在招寒假实习? #
25162次浏览 348人参与
# 这些公司卡简历很严格 #
84259次浏览 379人参与
# 聊聊你的职场新体验 #
311315次浏览 1842人参与
# 硬件人秋招进展 #
265347次浏览 3968人参与
# 招聘要求与实际实习内容不符怎么办 #
150473次浏览 891人参与
# 秋招开了,你想投哪些公司呢 #
968438次浏览 11391人参与
# 快手工作体验 #
296793次浏览 2896人参与

