美文网首页
数组中重复数问题

数组中重复数问题

作者: 大脸猫猫脸大 | 来源:发表于2019-08-29 16:12 被阅读0次

    题目

    136. Single Number

    解法

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

    知识点

    1. “&”、“|”、“^”按位逻辑运算
    1.1 &是按位逻辑运算符,比如5 & 6,5和6转换为二进制是101和110,此时101 & 110=100,100转换为十进制是4,所以5 & 6=4
    1.2 |是按位或逻辑运算符,比如5|6,就是101|110,得到111=7,所以最后结果为7
    1.3 ^是按位异或逻辑运算符,比如5^6,其实是101^110,结果是011,所以5^6的答案是3

    1. 逻辑运算交换性
      交换元素位置不改变计算结果,如5^6^5 = 5^5^6 = 6
      ^利用该性质可以消除重复元素。

    相关文章

      网友评论

          本文标题:数组中重复数问题

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