R2-位运算专题.
目录
一眼哈希表啊
哈希表
class Solution:
def singleNumber(self, nums: List[int]) -> List[int]:
dict=defaultdict(int)
ret=[]
for num in nums:
dict[num]+=1
for key in dict.keys():
if dict[key]==1:
ret.append(key)
return ret
怎么用位运算做?
位运算
看看灵神的。
class Solution:
def singleNumber(self, nums: List[int]) -> List[int]:
xor_all=reduce(xor,nums)
lowbit=xor_all & -xor_all
ret=[0,0]
for num in nums:
#分组异或
ret[(num & lowbit)!=0]^=num
return ret
异或运算就是快!
ps:
python异或用法(nums是一个数组)
xor_all = reduce(xor, nums)
判断异或和某一位为1:
lowbit = xor_all & -xor_all
简直神了。