Leetcode - Contains Duplicate

Question

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.

Java Code

//版本一:使用HashSet容器存储已经遍历过的数组元素
public boolean containsDuplicate(int[] nums) {
    int len = nums.length;
    HashSet<Integer> set = new  HashSet<>(2*len);
    for(int i = 0 ; i < len; ++i) {
        if(!set.add(nums[i]))
            return true;
    }

    return false;
}

//版本二:先对数组排序,再逐位比较相邻元素是否相等
public boolean containsDuplicate2(int[] nums) {
    Arrays.sort(nums);
    int len = nums.length - 1;
    for(int i = 0 ; i < len; ) {
        if(nums[i] == nums[++i])
            return true;
    }

    return false;
}

你可能感兴趣的:(LeetCode,array,DUPLICATE)