题目
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。
^利用该性质可以消除重复元素。









网友评论