码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode—217 Contains Duplicate(包含重复的数)

时间:2015-06-04 13:56:34      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:contains duplicate   leetcode   算法   hashmap   hashset   

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">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,</span>

and it should return false if every element is distinct.

Hide Tags: Array,Hash Table


解题思路:

起初使用的HashMap,一个for循环,将i与数组中的值nums[i],作为键值对进行存储,如果不重复,存入,如果重复直接返回true。 但是在leetcode的OJ编译时,出现了time limited限制。

随后,查阅资料,此处应该使用HashSet,因为HashMap存储时是对键值对进行存储,如果用一个无穷,不重复的数组进行判断,复杂度与时间消耗是很多的。

而HashSet的好处在于:HashSet实现了Set接口,它不允许集合中有重复的值,在进行存储时,先进行判断,使用contain方法即可,复杂度与时间消耗就随之降下来了。

具体可在本人总结的 JAVA学习笔记中:HashMap与HashSet的区别来看,这是一篇转载文献,可供大家参考。


代码如下:

	public static boolean containDuplicate(int []nums)
	{
		Set<Integer> hm=new HashSet<Integer>();
		if (nums.length==0)
		{
			return false;
		}
		int size=nums.length;
		for (int i = 0; i < size; i++)
		{
			if (!hm.contains(nums[i]))
			{
				hm.add(nums[i]);
			}
			else
			{
				return true;
			}
		}
		return false;
	}



leetcode—217 Contains Duplicate(包含重复的数)

标签:contains duplicate   leetcode   算法   hashmap   hashset   

原文地址:http://blog.csdn.net/zzc8265020/article/details/46358507

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!