这道题和16题类似,只不过除了一个数字,数字数组中的数字都出现了三次。
解题思路也类似,不过使用一个dict,遍历数组:
如果当前数字n不在dict里面。那么dict[n]=1
如果当前数字n在dict里面,且dict[n]!=2(dict[n]==1),dict[n]+=1
否则,从字典中移除该数字。
代码如下:
class Solution:
def singleNumber(self,A):
d={}
for int_ in A:
if int_ in d:
if d[int_] ==2:
d.pop(int_)
else:
d[int_]+=1
else:
d[int_]=1
return d.keys().pop()