剑指offer系列之49:数组中重复的数字
2016-04-12 21:40
288 查看
题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。
思路:此题的思路还是比较简单的,与之前找出只出现一次的数字的题目有些类似,基本思路还是创建一个Map容器,key是出现的数字,value则是该数字出现的次数。在遍历数组的过程中,只要容器中已经出现了该数字,那么就直接返回给数组,并结束循环。建立一个简单的哈希表即可。
思路:此题的思路还是比较简单的,与之前找出只出现一次的数字的题目有些类似,基本思路还是创建一个Map容器,key是出现的数字,value则是该数字出现的次数。在遍历数组的过程中,只要容器中已经出现了该数字,那么就直接返回给数组,并结束循环。建立一个简单的哈希表即可。
public boolean duplicate(int numbers[],int length,int [] duplication) { if(numbers == null || length <= 1){ return false; } int[] hash = new int[length]; for(int i = 0;i < hash.length;i++){ hash[i] = 0; } for(int i = 0;i < numbers.length;i++){ hash[numbers[i]]++; } int j = 0; for(int i = 0;i < hash.length;i++){ if(hash[i] >= 2){ duplication[j++] = i; break; } } if(j == 1) return true; return false; }
相关文章推荐
- 剑指offer系列之48:把字符串转换成整数
- 有向图中Dijstra最短路径算法的邻接表实现
- 剑指offer系列之47:不用加减乘除做加法
- 【数据存储】——JSON与XML的对比
- javascript copy拷贝对象
- java解析XML Node与Element的区别
- node学习之express(1)
- 剑指offer系列之45:圆圈中最后剩下的数字
- 剑指Offer(java答案)
- ubuntu 14.04 ns2.35 ***buffer overflow detected **: ns terminated解决办法
- jsp用到的标签
- 【数据存储】——JSON的解析和生成
- jquery的checkbox,radio,select等方法总结
- JSON知识总结
- 剑指offer系列之44:扑克牌顺子
- inode结构体及软链接和硬链接
- json-lib
- 剑指offer系列之43:左旋转字符串
- 前端 html 1
- JavaScript 正则表达式