输出一个数组里面出现奇数次的数

  • Post author:
  • Post category:其他


任意给定一个长度为N的数组,其中只有一个数出现奇数次,其他数都是偶数次。

如何用最少的时空复杂度快速找到这个数字?

代码如下:

nums = [1,2,2,3,4,4,4,2,2,3,1]    # 任意给定的测试数组

"""
哈希法,将数组中的数逐个放入字典中的键,并弹出,奇数次的数会留下
"""
temp = {}    # 创建一个空字典
for i in nums:
    try:
        temp.pop(i)      # 如果字典中有i,就弹出
    except:
        temp[i] = 1      # 键所对应的值随便赋值为1
print(temp.popitem()[0]) 

测试结果:

4
[Finished in 0.4s]



版权声明:本文为YZCOrange原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。