Description
Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.
解法:
1、遍历数组,把每一个数放到一个set里边。如果有重复,直接返回true。
public boolean cantainsDuplicate(int[] nums) {
Set<Integer> set = new HashSet<>();
for(int i=0; i<nums.length; i++) {
if(set.contains(nums[i])) {
return true;
}
set.add(nums[i]);
}
return false;
}
2、两层for循环遍历,如果有重复,返回true。
提示Submission Result: Time Limit Exceeded~~~~囧
public boolean cantainsDuplicate(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;
}
3、先把nums排序,在验证两两是否相等。
public boolean cantainsDuplicate(int[] nums) {
Arrays.sort(nums);
for(int i=0; i<nums.length-1; i++) {
if(nums[i] == nums[i+1]) return true;
}
return false;
}