今日问题:
给定一个整数数组,你如何判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 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
![07e15a70b3a0b0a91c618e29fd4a061c.png](https://i-blog.csdnimg.cn/blog_migrate/0028f1b75e0b8f50adc3ddf7561ded59.jpeg)
解题思路:
排序数组,连续两个数相等则证明存在重复元素。
直接用哈希集合:新建一个哈希集合,逐个向集合内添加元素,如果遇到元素未添加成功,则证明存在重复元素,返回 True ,反之返回 False。
代码:
这里用的哈希集合解题
Java:
class Solution { public boolean containsDuplicate(int[] nums) { Set set = new LinkedHashSet<>(); for (int num : nums) { if (!set.add(num)) return true; //加入集合未成功,证明集合内已有一个相同元素,返回False } return false; }}
Python:
Python中 set() 函数可以直接将数组转化为哈希集合。直接比较转化后的哈希集合长度与原数组长度是否相等,相等证明原数组无重复元素,不相等则证明原数组含有重复元素。
class Solution: def containsDuplicate(self, nums: List[int]) -> bool: return len(nums) != len(set(nums)) #比较长度
伙伴们有需要补充的可以留言!