[LeetCode]:217:Contains Duplicate

题目

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.

思路1:直接比较

代码:

    public static boolean containsDuplicate(int[] nums) {
        int iCounter =0;
        for(int i =0;i<nums.length;i++){
            iCounter = 0;
            for(int j =0;j<nums.length;j++){
                if(nums[i] == nums[j]){
                    iCounter++;
                }
                if(iCounter >1){
                    return true;
                }
            }
        }
        return false;
    }

结果:当测试用例非常大的时候超时

思路2:使用Java的集合数据类型HashSet。HashSet中的数据不能重复,add方法返回值为新添加的元素在HashSet集合中是否重复。

代码如下:

    public static boolean containsDuplicate1(int[] nums) {
        HashSet setAll=new HashSet();
        for(int i = 0;i<nums.length;i++ ){
            if(!(setAll.add(nums[i]))){
                return true;
            }
        }
        return false;
    }
原文地址:https://www.cnblogs.com/savageclc26/p/4809611.html