- 首先想到的是可以利用HashSet的不可重复特性进行判断。
代码如下:
public boolean containsDuplicate(int[] nums) {
if (nums.length <= 1) {
return false;
}
HashSet<Integer> set = new HashSet<>();
for (int num : nums) {
int length = set.size();
set.add(num);
if (length == set.size()) {
return true;
}
}
return false;
}
- 其次想到的是可以先对这个数组进行排序,然后前后两个元素进行大小比较,如果相等,那就重复了。
代码如下:
public boolean containsDuplicate(int[] nums) {
Arrays.sort(nums);
for (int i = 1; i < nums.length; i++) {
if (nums[i] == nums[i - 1]) {
return true;
}
}
return false;
}
- 当然你可以进行暴力对比。
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;
}