217. 存在重复元素
题目来源:217. 存在重复元素
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true
。如果数组中每个元素都不相同,则返回 false
。
方法一:排序
/** * @param {number[]} nums * @return {boolean} */ var containsDuplicate = function(nums) { nums.sort((a, b)=>a-b); let n = nums.length; for(let i = 0;i<n-1;i++){ if(nums[i] === nums[i+1]){ return true; } } return false; };
方法二:哈希表
var containsDuplicate = function(nums) { let map = new Map(); for(let num of nums){ if( map.has(num) ){ return true; } map.set(num, 1); } return false; };
示例 1:
输入: [1,2,3,1] 输出: true
示例 2:
输入: [1,2,3,4] 输出: false
示例 3:
输入: [1,1,1,3,3,4,3,2,4,2] 输出: true
from typing import List class Solution: def containsDuplicate(self, nums: List[int]) -> bool: return len(nums) != len(set(nums)) so = Solution() nums = [1,2,3,1] print(nums, so.containsDuplicate(nums) ) nums = [1,2,3,4] print(nums, so.containsDuplicate(nums) ) nums = [1,1,1,3,3,4,3,2,4,2] print(nums, so.containsDuplicate(nums) )