217. 存在重复元素 - 力扣(LeetCode) (leetcode-cn.com)
难度:简单
题目描述:给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
分析
1- 创建一个哈希表,将数组中的元素添加到哈希表中,
此处使用set.add()方法的原因是方法返回值为布尔类型并且官方对于返回值这样解释
true if this set did not already contain the specified element
所以不需要使用set.contains()判断是否存在此元素
2- 排序后判断前后两个元素是否相等 排序后数组为有序数组,如果存在两数相等,则两数位置为前后位置
解题
方法一
class Solution {
public boolean containsDuplicate(int[] nums) {
Set<Integer> sets = new HashSet<>();
for (int num :
nums) {
if (!sets.add(num)) {
return true;
}
}
return false;
}
}
方法二
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;
}
}