存在重复元素
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
class Solution {
public boolean containsDuplicate(int[] nums) {
}
}
示例 1:
输入: [1,2,3,1]
输出: true
示例 2:
输入: [1,2,3,4]
输出: false
示例 3:
输入: [1,1,1,3,3,4,3,2,4,2]
输出: true
方式一:效率低
class Solution {
public boolean containsDuplicate(int[] nums) {
for(int i=0;i<nums.length;i++){
for(int j=i+1;j<nums.length;j++){
if(nums[i]==nums[j]){
return true;
}
}
}
return false;
}
public static void main(String[] args) {
int[] nums=new int[]{1,1,1,3,3,4,3,2,4,2};
Solution s=new Solution();
System.out.println(s.containsDuplicate(nums));
}
}
方式二:
static class Solution {
public boolean containsDuplicate(int[] nums) {
Set<Integer> set = new HashSet<Integer>();
for (int x : nums) {
if (!set.add(x)) {
return true;
}
}
return false;
}
}
方式三:
static class Solution {
public boolean containsDuplicate(int[] nums) {
HashSet<Integer> set = new HashSet<Integer>();
for (int i = 0; i < nums.length; i++) {
if (set.contains(nums[i])) {
return true;
} else {
//如果此set已经包含该元素,则该调用不改变此set并返回false
set.add(nums[i]);
}
}
return false;
}
}
本文介绍了一种检测整数数组中是否存在重复元素的方法。通过三种不同的实现方式,包括双重循环、使用HashSet进行元素添加检查以及直接在HashSet中查找元素,展示了不同效率级别的解决方案。

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



