难度简单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;
}
}