輸出一個數組裏面出現奇數次的數

任意給定一個長度爲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]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章