leetcode217. 存在重复元素
例子:
给定一个整数数组,判断是否存在重复元素。
如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
方法1:利用set集合,如果当前元素存在,添加时返回false,否则返回true。
public boolean containsDuplicate(int[] nums) {
HashSet<Integer> set = new HashSet();
for (int a : nums) {
if(!set.add(a)){
return true;
}
}
return false;
}
方法二:排序再便利数组,如果有重复元素,相邻元素一定相同。
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;
}
方法二效率更高,因为方法1中set创建和add操作都会耗时。