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。
Example 1:
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
Coding
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)
Time complexity: O(n)Space complexity: O(n)