对应力扣136.只出现一次的数字和389.找不同
位运算一般都会很巧妙地解决问题,但同时一般也很难想到,今天刷到了用异或解决的题,所以我想记下来,以后能够及时想到这种解法。(能秒杀的感觉好爽hhh)
力扣上这两题一般会想到哈希表来解决(是我没错),但是复杂度就上去了,接下来介绍异或。
异或(XOR)
- 0^0=0 0^1=1
- 1^1=0 a^a=0
- a^b^a=a^a^b=0^b=b
由以上例子可以看出,0和二进制位做XOR运算得到的仍为这个二进制位,两个相同的数做XOR运算得到的是0,满足交换律和结合律。
总结:位运算简直不要太好用,可以在众多偶数次出现的数中找出现奇数次的数,找不同的时候可以想想XOR。