iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 10
0
自我挑戰組

Leetcode新手挑戰30天系列 第 10

#136 Single Number - 試著自己解看看

前情提要

想試著自己解解看了,就直接開始吧

進入正題

def singleNumber(self, nums: List[int]) -> int:
    hash_table={}
    for i in nums:
            if hash_table[i] != "":
                hash_table[nums[i]] = hash_table[nums[i]] + 1
            else:
                hash_table[nums[i]] = 1
    return hash_table.index(1)

試著用一開始看到題目的時候想到的解法寫了出來,但run過後在第四行判斷是否出現過這個數字的時候出了error
寫Key Error:
https://ithelp.ithome.com.tw/upload/images/20190911/20113393jAGPH0Y9va.png
KeyError找到了參考1連結出錯的地方,
修改編輯後又發現return的地方出了第二個錯
最後找到參考2修改後,程式碼變成這樣:

def singleNumber(self, nums: List[int]) -> int:
    hash_table={}
    for i in nums:
        if i in hash_table :
            hash_table[i] = hash_table[i] + 1
        else:
            hash_table[i] = 1
    return list(hash_table.keys())[list(hash_table.values()).index(1)]

submit後的結果如下:
https://ithelp.ithome.com.tw/upload/images/20190912/20113393LfEzLe247A.png

參考資料

參考1Python:操作dict时避免出现KeyError的几种方法
參考2Get key by value in dictionary


上一篇
#136 Single Number - 直接研究其他解法
下一篇
#26 Remove Duplicates from Sorted Array
系列文
Leetcode新手挑戰30天31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言