考几种方法的比较
1. 每个数和后面所有数依次比较 O(n^2)
2. 排序后比较相邻两个 时间是O(nlgn) 空间O(1)
public 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;
}
}
3. 用hash 时间O(n) 空间 O(n)
public class Solution {
public boolean containsDuplicate(int[] nums) {
Set<Integer>hashset = new HashSet<Integer>();
for ( int i = 0; i < nums.length; i ++ ){
if ( hashset.contains (nums[i]) ){
return true;
}
hashset.add( nums[i] );
}
return false;
}
}