关注
答案解释里说的模棱两可的,首先应该是 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-16 11:50
浙江工商大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客吐槽大会 #
13467次浏览 203人参与
# 实习,不懂就问 #
158467次浏览 1387人参与
# 国企秋招,你投了吗? #
58599次浏览 374人参与
# 软开人,秋招你打算投哪些公司呢 #
177905次浏览 1349人参与
# 帆软软件工作体验 #
11129次浏览 55人参与
# 运营人求职交流聚集地 #
208518次浏览 1091人参与
# 硬件人秋招进展 #
269339次浏览 3982人参与
# 毕业后不工作的日子里我在做什么 #
232779次浏览 1691人参与
# 关于春招你都做了哪些准备? #
125806次浏览 717人参与
# 快手工作体验 #
301740次浏览 2904人参与
# 硬件/芯片公司工作体验 #
146745次浏览 958人参与
# AI求职实录 #
18983次浏览 438人参与
# 今年春招是金一银二嘛? #
32442次浏览 306人参与
# 没关系,至少我的__很曼妙 #
14006次浏览 239人参与
# 实习打杂,要跑路吗 #
58260次浏览 340人参与
# 1月小结:你过的开心吗? #
5870次浏览 132人参与
# 你的第一家实习公司是什么档次? #
14818次浏览 182人参与
# Prompt分享 #
20091次浏览 484人参与
# 抛开难度不谈,你最想去哪家公司? #
18556次浏览 246人参与
# 快手年终开大包 #
4422次浏览 58人参与
曼迪匹艾公司福利 142人发布