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]
只出现一次的数字 I&&只出现一次的数字 2&&只出现一次的数字 3
猜你喜欢
转载自blog.csdn.net/qq_36328915/article/details/104750688
今日推荐
周排行