題目描述:給定整數陣列 nums,若任意元素出現至少兩次回傳 true,否則回傳 false。
解題思路:使用雜湊集合(unordered_set)追蹤已出現的元素。遍歷陣列,若當前元素已在集合中則找到重複;否則加入集合繼續。這是最直觀的 O(n) 解法。另一種方式是排序後檢查相鄰元素,但需要 O(n log n) 時間。
時間複雜度:O(n) — 最多遍歷一次,每次集合操作 O(1)。
空間複雜度:O(n) — 集合最多儲存 n 個元素。
1. Create empty hash set 2. For each num in nums: a. If num in set: return true b. Else: add num to set 3. Return false
排序 O(n log n) / O(1) 空間:排序陣列後檢查相鄰元素是否相等。節省空間但速度較慢。
暴力法 O(n²):比較每一對元素。僅適合非常小的陣列。