难度简单376收藏分享切换为英文接收动态反馈
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回
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
解法一:使用哈希集合 将元素放入集合中,自动删除了重复元素。比较集合和数组长度。
复杂度分析
-
时间复杂度:O(N)O(N),其中 NN 为数组的长度。
-
空间复杂度:O(N)O(N),其中 NN 为数组的长度
class Solution {
public boolean containsDuplicate(int[] nums) {
HashSet<Integer> set= new HashSet<>();
for(int num:nums){
set.add(num);
}
if(set.size()<nums.length)
return true;
else
return false;
}
}
解法二:sort快排 for循环解决
时间复杂度O(NlogN)
class Solution {
public boolean containsDuplicate(int[] nums) {
Arrays.sort(nums);
for(int i=0;i<nums.length-1;i++){
if(nums[i]==nums[i+1])
return true;
}
return false;
}
}

这篇博客介绍了两种方法来判断整数数组中是否存在重复元素。方法一是利用哈希集合,通过比较集合和原数组长度来判断;方法二是对数组进行排序后,遍历寻找相邻相等元素。这两种方法分别具有O(N)和O(NlogN)的时间复杂度。
904

被折叠的 条评论
为什么被折叠?



