给定一个整数数组 nums
,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。
方案一:简单粗暴容易理解,效率慢
import numpy
class Solution:
def singleNumber(self, nums: List[int]) -> List[int]:
record=[]
for i in range(len(nums)):
for j in range(i+1,len(nums)):
if nums[i]==nums[j]:
record.append(nums[i])
i+=1
break
a=numpy.unique(record)
x=set(nums).difference(set(a))
return list(x)
方案二:使用哈希表,大大增快速度
class Solution:
def singleNumber(self, nums: List[int]) -> List[int]:
dic = collections.defaultdict(int)
for num in nums:
dic[num] += 1
if dic[num] == 2:
dic.pop(num)
return list(dic.keys())