关注
答案解释里说的模棱两可的,首先应该是 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
相关推荐
牛客热帖
更多
正在热议
更多
# 0经验如何找实习? #
16084次浏览 310人参与
# 大学最后一个寒假,我想…… #
69152次浏览 698人参与
# 百融云创求职进展汇总 #
22632次浏览 150人参与
# 找工作能把i人逼成什么样 #
5496次浏览 55人参与
# 你找工作经历过哪些骗局? #
5930次浏览 106人参与
# 你开始找寒假实习了吗? #
9121次浏览 141人参与
# 你今年做了几份实习? #
4778次浏览 68人参与
# 实习越久越好,还是多多益善? #
12368次浏览 100人参与
# 一上班就想____,这正常吗? #
3116次浏览 63人参与
# 25年找工作是什么难度? #
8602次浏览 91人参与
# 刚工作,应该先搞钱or搞成长? #
4849次浏览 68人参与
# 离职你会和父母说吗? #
6443次浏览 86人参与
# 机械校招之路总结 #
107879次浏览 2042人参与
# 实习必须要去大厂吗? #
168577次浏览 1660人参与
# 产品每日一题 #
73657次浏览 670人参与
# 大家每天通勤多久? #
62421次浏览 399人参与
# 面试尴尬现场 #
199397次浏览 756人参与
# 你会为了工作牺牲生活吗? #
65103次浏览 447人参与
# 实习心态崩了 #
93873次浏览 488人参与
# 如果公司降薪,你会跳槽吗? #
109351次浏览 688人参与
# 字节出了豆包coding模型 #
4629次浏览 49人参与
