題目出處
難度
Easy
題目分類
Array, Hash Table, Sorting
個人範例程式碼 - 2022/5/18 三刷
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
if not nums:
return False
record = set()
for num in nums:
if num in record:
return True
else:
record.add(num)
return False
最近在練習程式碼本身就可以自解釋的 Coding style,可以嘗試直接閱讀程式碼理解
算法說明
找重複,有重複 return True
input handling
如果沒有 input,return False
Boundary conditions
for 迴圈控制範圍
個人範例程式碼 - 2022/3/3 二刷
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
loopuptable = {}
for ele in nums:
if ele in loopuptable.keys():
return True
else:
loopuptable[ele] = True
return False
說明
dictionary search 的時間只需要 O(1),
透過建立 dict 可以幫助我們快速查找已經出現的元素。
註:「if ele in loopuptable.keys()」 也可以寫成 「if ele in loopuptable」
只是寫成前者會更清楚。
個人範例程式碼 - 2022/2/24 一刷
class Solution(object):
def containsDuplicate(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
return (len(set(nums)) != len(nums))
說明
這題考的東西很簡單,就是找有沒有重複的東西,
「找重複」非常適合使用 set 來做,我們只需要比較 set 之後的大小是否等於原長度即可。