思路一:暴力解法
class Solution {
public boolean containsDuplicate(int[] nums) {
int result = 0;
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;
}
}
结果超时了
思路二:先排序,再从头看
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;
}
}
实现效果了,不过效率一般
思路三:使用set不能添加重复值的特性
class Solution {
public boolean containsDuplicate(int[] nums) {
HashSet<Integer> hs = new HashSet<Integer>();
for(int i = 0;i<nums.length;i++){
if(!hs.add(nums[i])){
return true;
}
}
return false;
}
}
时间效率上有一些进步