美文网首页北美程序员面试干货
LeetCode 136 [Single Number]

LeetCode 136 [Single Number]

作者: Jason_Yuan | 来源:发表于2016-08-08 14:04 被阅读19次

    原题

    给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。

    样例
    给出** [1,2,2,1,3,4,3]**,返回 4

    解题思路

    • 位运算 - 利用异或运算的特殊性,相同的数异或后等于0:1 XOR 1 = 0
    • 同时,异或运算有交换律:115 = 5 = 151

    完整代码

    class Solution(object):
        def singleNumber(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            res = 0
            for item in nums:
                res ^= item
            return res
    

    相关文章

      网友评论

        本文标题:LeetCode 136 [Single Number]

        本文链接:https://www.haomeiwen.com/subject/ogkrsttx.html