简单题:存在重复元素
一、题目描述
二、解题思路
1.利用排序算法解题(1)
思路:1.数组中的各个数分别与它们之后的数字比较,如果有相同的数字则返回true。
2.如果数组的容量为1,则直接返回false;
代码如下(示例):
class Solution {
public boolean containsDuplicate(int[] nums) {
int i,j;
for(i=0;i<nums.length;i++){
for (j=i+1;j<nums.length;j++){
if (nums[i]==nums[j]){
return true;
}
}
}
return false;
}
}
2.排序解法(2)
思路:1.先对数组进行排序,使其成为一个有序数组。
2.相邻的2个数字两两进行比较,如果相同则返回true。
3.如果数组容量为1则直接返回false;
代码如下(示例):
import java.util.Arrays;
class Solution {
public boolean containsDuplicate(int[] nums) {
int i;
Arrays.sort(nums);
for(i=0;i<nums.length;i++){
if(nums[i]==nums[i+1]){
return true;
}
}
return false;
}
}
3.哈希表解法
思路:1.set集合中add方法如果添加的元素存在则会添加失败并返回false。
2.把数组中的元素添加到set集合当中,如果有至少一次add方法的返回值为false,则说明数组
当中有相同的元素
代码如下(示例):
import java.util.HashSet;
class Solution {
public boolean containsDuplicate(int[] nums) {
HashSet<Integer> set = new HashSet<>();
for(int i=0;i<nums.length;i++){
if (!set.add(nums[i])){
return true;
}
}
return false;
}
}