美文网首页
49.LeetCode136. 只出现一次的数字

49.LeetCode136. 只出现一次的数字

作者: 月牙眼的楼下小黑 | 来源:发表于2018-10-15 19:54 被阅读35次
    • 标签: 位运算
    • 难度: 简单

    • 题目描述
    • 官方解法

    题目要求不用额外空间,一时想不出解法,瞅了下solution, 确认过眼神,是精妙的解法。
    异或运算满足 交换律,结合律。假设所有的数为:abcbcdad 为只出现一次的元素,为找出 d, 只需:

    a ^ b ^ c ^ b ^ c ^ d ^ a
    = a ^ a ^ b ^ b ^ c ^ c ^ d
    = 0 ^ 0 ^ 0 ^ d
    = d
    
    

    例子来源

    class Solution(object):
        def singleNumber(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            a = 0
            for i in nums:
                a ^= i
            return a
    
    • 其他解法

    暂略。

    相关文章

      网友评论

          本文标题:49.LeetCode136. 只出现一次的数字

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