结合 LeetCode 上的几道简单题再谈谈位操作(二):异或的魅力
文章目录 接着上一篇文章来讲些简单的位操作,这篇侧重的是异或的一些用途,不过其实前一篇文章的后面两道题也都有部分用到异或的内容,可见它的用途还算是挺广泛的。下面来看一些更加贴近异或操作思维的题目。 Problem 136. Single Number 把一个非空数组里只出现一次的数字找出来,剩下的数字保证是出现两次的。这个直接用异或的特性就行了,一个数如果和自身进行按位异或的话,因为每一位都对应相等,所以结果就是一串 0。这样我们把整个数组遍历异或一遍,重复的数字都消掉了,结果就是那个只出现了一次的值,毕竟一个数字和 0 异或之后得到的是它本身: class Solution { public: »