- 因為只能用常數的額外空間,且 array 裡的數字除了目標之外都會有兩個,所以朝 bitwise operation 的方向想
- 把 array 裡所有數字接連做 bitwise operation,假如有兩個一樣的數字,他們就會抵銷變為 0,即使不是連著做也一樣,所以最後的結果就是那個落單的數字
- 可以想像所有數字都用二進位表示由上而下列在一起做計算,不管他們位置怎麼換結果都會一樣 (偶數個
1會互相抵銷)
- 可以想像所有數字都用二進位表示由上而下列在一起做計算,不管他們位置怎麼換結果都會一樣 (偶數個
Python3 solution:
1 | def singleNumber(self, nums: List[int]) -> int: |