1. 程式人生 > >劍指offer 40. 陣列中只出現一次的數字

劍指offer 40. 陣列中只出現一次的數字

原題

一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。

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])