我是靠谱客的博主 勤恳万宝路,这篇文章主要介绍给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。,现在分享给大家,希望可以做个参考。

定义两个变量ones和twos,当遍历nums的时候,对于重复元素x,第一次碰到x的时候,我们会将x赋给ones,第二次碰到后再赋给twos,第三次碰到就全部消除。赋值和消除的动作可以通过xor很简单的实现。
x&~x就完成了消除操作
第一次出现x记录在ones中,并且此时twos应为0;第二次出现x记录在twos中,同时ones置为0,;第三次出现x,则ones,twos均重置为0

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。

class Solution:

    def singleNumber(self, nums: List[int]) -> int:

        ones, twos = 0, 0

        for num in nums:

            ones = (ones^num)&~(twos)

            twos = (twos^num)&~(ones)

            print(ones,twos)

        return ones

最后

以上就是勤恳万宝路最近收集整理的关于给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。的全部内容,更多相关给你一个整数数组内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部