进击的Python工具癖程序员

寻找"单身数"

2018-02-18  本文已影响116人  zhaoolee

一个有N个数的数组里, 每个数字都出现两次, 现在取出一个数, 根据剩下的数字, 猜测取出的数的值(要求时间复杂度为N, 空间复杂度为1)

异或运算

解题思路:

解题图示

代码实现:

class Solution:
    def singleNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        result = nums[0]
        for num in nums[1:]:
            result ^= num
        
        return result

def main():
    so = Solution()
    result = so.singleNumber([10, 20, 50, 80, 10, 50, 80, 5,  20])
    print("单身数为:", result)

if __name__ == '__main__':
    main()
上一篇 下一篇

猜你喜欢

热点阅读