題目說明
範例
Input: [1,2,3,1]
Output: true
Input: [1,2,3,4]
Output: false
Input: [1,1,1,3,3,4,3,2,4,2]
Output: true
程式碼
Python 解法
def containsDuplicate(nums):
seen = set()
for num in nums:
if num in seen:
return True
seen.add(num)
return False
Java 解法
import java.util.*;
class Solution {
public boolean containsDuplicate(int[] nums) {
Set seen = new HashSet<>();
for (int num : nums) {
if (seen.contains(num)) return true;
seen.add(num);
}
return false;
}
}
Java vs Python 差異
• Python 用 set(),Java 用 HashSet
• Python 用 in 判斷元素是否存在,Java 用 contains()
• 核心邏輯相同:用額外空間紀錄出現過的元素,一旦重複就回傳 True
複雜度分析
• 時間複雜度:O(n),每個元素最多查找和插入一次
• 空間複雜度:O(n),最壞情況下所有元素都存入 Set