给出 2 * n + 1个数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
样例
样例 1:
输入:[1,1,2,2,3,4,4]
输出:3
解释:
仅3出现一次
样例 2:
输入:[0,0,1]
输出:1
解释:
仅1出现一次
挑战
一次遍历,常数级的额外空间复杂度
注意事项
n≤100
代码:
# -*- coding: utf-8 -*-
# @Time : 2020/3/30 12:04 上午
# @Author : renwoxing
# @File : test.py
# @Software: PyCharm
def singleNumber(A):
# write your code
dict1 = {}
single = []
if len(A) == 1:
return A[0]
for i in A:
if i in dict1.keys():
dict1[i] = dict1[i] + 1
if i in single:
single.remove(i)
else:
dict1[i] = 1
single.append(i)
return single[0]
if __name__ == '__main__':
a = [1, 1, 2, 2, 3, 4, 4]
singleNumber(a)