只出现一次的数字 I&&只出现一次的数字 2&&只出现一次的数字 3

1.出现一次直接一直异或

2.给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。

class Solution(object):

    def singleNumber(self, nums):

        """

        :type nums: List[int]

        :rtype: int

        """

        a=b=0

        for num in nums:

            a=(a^num)&~b

            b=(b^num)&~a

        return a

2.给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。

class Solution(object):

    def singleNumber(self, nums):

        """

        :type nums: List[int]

        :rtype: List[int]

        """

        bitmask = 0

        for num in nums:

            bitmask^=num

        diff=bitmask&(-bitmask)



        x = 0

        for num in nums:

            if num&diff:

                x^=num

        return [x,bitmask^x]
发布了216 篇原创文章 · 获赞 17 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_36328915/article/details/104750688