題目出處
難度
medium
個人範例程式碼 - (非題目要求空間)解
class Solution:
def singleNumber(self, nums: List[int]) -> int:
counter = Counter(nums)
for key, value in counter.items():
if value == 1:
return key
最近在練習程式碼本身就可以自解釋的 Coding style,可以嘗試直接閱讀程式碼理解
算法說明
先來簡介一下題目的要求,
題目要求這題,希望能夠「在線性時間 O(n) 完成 」且「使用常數空間 O(1)」,
- 使用常數空間的方法,我們直覺會想到用 sort()
- 線性時間的方法,我們直覺會想到用 hashtable()
但如果要同時滿足兩者,我們需要使用特別的方法,
在這題會需要使用到 bit 的運算,但由於面試準備中這比較少見,
因此這邊只點出思路,不是示範對應做法。
而上方我們示範的是利用 hash 做出 counter 的做法,
統計並找出 counter 中數量為 1 的結果。
input handling
x
Boundary conditions
x