leecode刷题笔记-136. 只出现一次的数字

    科技2022-07-12  121

    本题利用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)
    Processed: 0.009, SQL: 8