首页 > 其他 > 详细

Contains Duplicate

时间:2015-05-25 14:17:47      阅读:122      评论:0      收藏:0      [点我收藏+]

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.

 

解法一:先把数组排个序,然后遍历排序后的数组,查看相邻元素是否有重复,时间复杂度O(nlogn).

public class Solution {
    public boolean containsDuplicate(int[] nums) {
        if(nums.length<=1) return false;
        Arrays.sort(nums);
        for(int i=0;i<nums.length-1;i++) {
            if(nums[i]==nums[i+1]) return true;
        }
        return false;
    }
}

解法二:用HashSet,最坏时间复杂度O(n).

public class Solution {
    public boolean containsDuplicate(int[] nums) {
        HashSet<Integer> set = new HashSet<Integer>();
        for(int i=0;i<nums.length;i++) {
            if(set.contains(nums[i])) return true;
            else set.add(nums[i]);
        }
        return false;
    }
}

 

Contains Duplicate

原文:http://www.cnblogs.com/mrpod2g/p/4527578.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!