217. Contains Duplicate
Leetcode
https://leetcode.com/problems/contains-duplicate/description/
題目
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.
Example 1:
Input: nums = [1,2,3,1]
Output: trueExample 2:
Input: nums = [1,2,3,4]
Output: falseExample 3:
Input: nums = [1,1,1,3,3,4,3,2,4,2]
Output: true解答
方法一 - HashTable
Time complexity: O(n)
Space complexity: O(n)
var containsDuplicate = function(nums) {
const map = new Map();
for(let i=0; i<nums.length; i++) {
const value = nums[i];
if (map.has(value)) {
return true;
}
map.set(value, i);
}
return false;
};Runtime: 91 ms Beats 33.46% of users with JavaScript
Memory: 66.92 MB Beats 5.39% of users with JavaScript
方法二 - Sorting
Time complexity: O(nlogn)
Space complexity: O(1)
var containsDuplicate = function(nums) {
nums.sort((a, b) => a - b);
for(let i=0; i<nums.length; i++) {
if (nums[i] === nums[i+1]) {
return true;
}
}
return false;
};Runtime: 140 ms Beats 17.79% of users with JavaScript
Memory: 59.30 MB Beats 46.14% of users with JavaScript
方法三 - Set
直接使用原生的 Set 方法
var containsDuplicate = function (nums) {
const s = new Set(nums)
return s.size !== nums.length
};參考資料
Last updated
Was this helpful?
