class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
位运算 -- 异或
"""
single = 0
for i in nums:
single = single ^ i
return single
重点
- 因为要求线性时间复杂度,所以本题只能用位运算
- 异或的性质:
- 任何数和 00做异或运算,结果仍然是原来的数,即 a⊕0=a。
- 任何数和其自身做异或运算,结果是 0,即 a⊕a=0。
- 异或运算满足交换律和结合律,即 a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。
参考链接:https://leetcode-cn.com/problems/single-number/solution/zhi-chu-xian-yi-ci-de-shu-zi-by-leetcode-solution/
- python中异或运算用的是^