Contains Duplicate
•--
Detect if array contains duplicate elements using Set or Map
Determine if an array contains any duplicate elements
問題描述
給你一個整數數組 nums。如果任一值在數組中出現 至少兩次,返回 true;如果數組中每個元素都不相同,則返回 false。
範例
輸入:nums = [1,2,3,1]
輸出:true
輸入:nums = [1,2,3,4]
輸出:false
輸入:nums = [1,1,1,3,3,4,3,2,4,2]
輸出:true
限制條件
1 <= nums.length <= 10⁵-10⁹ <= nums[i] <= 10⁹
解題思路
### Set 去重特性 利用 Set 不允許重複元素的特性
### 長度比較 比較原數組和 Set 的長度差異
### 早期退出優化 使用 Map 在發現重複時立即返回
解決方案
typescript
export function containsDuplicate(nums: number[]): boolean {
return new Set(nums).size !== nums.length;
}
export function containsDuplicateMap(nums: number[]): boolean {
const countMap = new Map<number, number>();
for (const num of nums) {
const count = (countMap.get(num) || 0) + 1;
if (count > 1)
return true;
countMap.set(num, count);
}
return false;
}