1.第一种排序,循环
class Solution {
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;
}
}
想了很久,觉得排序再循环很白痴。但是出来效果还不错
2.循环+去重
class Solution {
public boolean containsDuplicate(int[] nums) {
Set<Integer> res = new HashSet<Integer>();
for(int i:nums) res.add(i);
return res.size()<nums.length?true:false;
}
}
这是去重比排序复杂度高的意思么? 下面是改良版,看来是
class Solution {
public boolean containsDuplicate(int[] nums) {
Set<Integer> res = new HashSet<Integer>();
for(int i:nums){
if(!res.add(i)) return true;
}
return false;
}
}