0
点赞
收藏
分享

微信扫一扫

位运算技巧-异或预算找出两个出现奇数次的数

佳简诚锄 2022-01-06 阅读 106

该技巧就是将所有的数进行异或,因为其他的数字出现次数为偶数次,所以自己抵消为零了,剩下的结果就是两个要找的数的异或结果,因为这是两个不同的数,所以必然有不相同的位,我们任意找出一个不相同的位就可以将这些数分为两组
怎么找出不同的一位: 根据最后异或的结果,结果上为1的位就是两个要求的数不同的位,这是异或的性质。

怎么分组: 可以通过与运算将数分成两组,分成之后两个不同的数必然不在同一组,因为他们在我们选取的这一位上是不同的。而相同的数必然可以分到同一组。
最后两组分别异或运算得到的两个数就是结果。因为相同的数异或之后抵消了,只剩下我们要求的数。

详见力扣题
剑指 Offer 56 - I. 数组中数字出现的次数

举报

相关推荐

0 条评论