给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false
https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x248f5/
class ContainsDuplicate{
//方法1:先排序,比较相邻元素是否相等
public boolean containsDuplicate2(int[] nums) {
Arrays.sort(nums);
for (int i = 0; i < nums.length - 1; i++){
if (nums[i] == nums[i + 1]){
return true;
}
}
return false;
}
//方法2:把数组元素全部加入Set里,比较set的大小和数组的长度是否相等
public boolean containsDuplicate1(int[] nums) {
Set<Integer> set = new HashSet<>(nums.length);
for (int i = 0; i < nums.length; i++){
set.add(nums[i]);
}
return (nums.length == set.size())?false:true;
}
//方法3:把数组元素加入set,添加不成功说明存在重复元素
public boolean containsDuplicate(int[] nums) {
Set<Integer> set = new HashSet<>(nums.length);
for (int i = 0; i < nums.length; i++){
if (set.contains(nums[i])){
return true;
}
set.add(nums[i]);
}
return false;
}
}