1. 程式人生 > >[leetcode]python3 演算法攻略-只出現一次的數字

[leetcode]python3 演算法攻略-只出現一次的數字

給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。

方案一:去重求和,乘2減原

def singleNumber(nums):
    """
    :type nums: List[int]
    :rtype: int
    """
    return sum(set(nums)) * 2 - sum(nums)

方案二:根據 異或運演算法則, 交換律;0 與 任意數x 異或後都是x

def singleNumber(nums):
    """
    :type nums: List[int]
    :rtype: int
    """
    res = 0
    for i in nums:
        res ^= i
    return res