劍指offer 40. 陣列中只出現一次的數字
阿新 • • 發佈:2018-11-25
原題
一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。
Reference Answer
思路分析
直接利用python中的dict進行次數統計就好了,用空間換時間。
# -*- coding:utf-8 -*-
class Solution:
# 返回[a,b] 其中ab是出現一次的兩個數字
def FindNumsAppearOnce(self, array):
# write code here
if len(array) < 2:
return []
temp_res = {}
for x in array:
if x in temp_res.keys():
temp_res[x] += 1
else:
temp_res[x] = 1
res = sorted(temp_res.items(), key = lambda temp_res:temp_res[1])
return [res[0][0], res[1][0]]
Note
需要注意的一點是關於python中對dict進行按照key排序以及按照value排序的適用方法。
- 按照value排序:
res = sorted(temp_res.items(), key = lambda temp_res:temp_res[1])
- 按照key排序:res = sorted(temp_res.items(), key = lambda temp_res:temp_res[0])