Given an integer array nums
, return true
if any value appears at least twice in the array, and return false
if every element is distinct.
給定一個 nums 的陣列,如果該陣列中的數值都沒有重複及回傳 true
反之回傳 false
,這題使用 for-loop遍歷 nums 陣列後用 hash-table 記錄每個 item 出現的次數,如果出現超過 1 次則回傳 false。
Input: nums = [1,2,3,1]
Output: true
Example 2:
Input: nums = [1,2,3,4]
Output: false
Example 3:
Input: nums = [1,1,1,3,3,4,3,2,4,2]
Output: true
var containsDuplicate = function(nums) {
const map = new Map();
for (let i = 0; i < nums.length; i++) {
if (!map.get(nums[i])) {
// if item is not exist in hash-table -> insert into hash-table
map.set(nums[i], 1);
} else {
// item is exist in hash-table
return true;
}
}
return false;
};
hash-table 的 get 為 O(1) 而 for-loop 遍歷 nums 陣列為 O(n)