本题利用xor位运算的性质,xor运算两数相同时结果为0, 两数不同结果为1. 且位运算符合交换律。 对数组所有元素依次进行位运算,得到结果就是唯一出现一次的元素
class Solution:
def singleNumber(self
, nums
: List
[int]) -> int:
res
= nums
[0]
for num
in nums
[1:]:
res
= num
^ res
return res
或者使用reduce()函数更简练:
class Solution:
def singleNumber(self
, nums
: List
[int]) -> int:
return reduce(lambda x
,y
: x
^y
, nums
)
转载请注明原文地址:https://blackberry.8miu.com/read-4361.html