offer51的要求是从一个数组中找出两个只出现一次的数a,b,并返回[a,b]
说到去重,很容易想到带字典的一次遍历,字典可以有效地记录每一个键对应的值(出现次数),所以代码本身也不复杂:
# offer51-solution
def FindNumsAppearOnce(self, array):
usedNum = {}
for i in range(len(array)):
if array[i] in usedNum:
usedNum[array[i]] = -1
else:
usedNum[array[i]] = array[i]
p = usedNum.values()
p = [i for i in p if i >= 0]
return p