LeetCode-Contains Duplicate

考几种方法的比较

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;
    }
}




你可能感兴趣的:(LeetCode-Contains Duplicate)