美文网首页
python实现leetcode之137. 只出现一次的数字 I

python实现leetcode之137. 只出现一次的数字 I

作者: 深圳都这么冷 | 来源:发表于2021-10-11 00:02 被阅读0次

解题思路

计算每个二进制位出现的次数,如果是3的倍数,不用管
否则就是唯一的那个数

137. 只出现一次的数字 II

代码

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        rtv = 0
        for i in range(32):
            test = 1<<i
            cnt = sum([1 for n in nums if n & test])  # 所有数的该位统计
            # 出现三次的全部被剔除了,如果出现一次的那个该位是0,也不管,是1时把该位补上
            if cnt % 3: rtv |= test
        return rtv if rtv < 2**31 else rtv - 2**32
效果图

相关文章

网友评论

      本文标题:python实现leetcode之137. 只出现一次的数字 I

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