题目
136. Single Number解法
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
res = 0
for num in nums:
res ^= num
return res
知识点
1. “&”、“|”、“^”按位逻辑运算
1.1 &
是按位逻辑运算符,比如5 & 6
,5和6转换为二进制是101和110,此时101 & 110=100
,100转换为十进制是4,所以5 & 6=4
1.2 |
是按位或逻辑运算符,比如5|6
,就是101|110
,得到111=7
,所以最后结果为7
1.3 ^
是按位异或逻辑运算符,比如5^6
,其实是101^110
,结果是011,所以5^6
的答案是3
- 逻辑运算交换性
交换元素位置不改变计算结果,如5^6^5 = 5^5^6 = 6
。
^
利用该性质可以消除重复元素。
网友评论