【数组13】数组中重复的数字
2016-08-01 19:15
176 查看
题目描述
在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。当看到求数组中重复字眼的时候,就会想到Java中set集合的特性:当添加重复字符时候,会返回false;即不可重复性
以下是我的code,已被牛客AC
import java.util.Set;
import java.util.HashSet;
public class Solution {
// Parameters:
// numbers: an array of integers
// length: the length of array numbers
// duplication: (Output) the duplicated number in the array number,length of duplication array is 1,so using duplication[0] = ? in implementation;
// Here duplication like pointor in C/C++, duplication[0] equal *duplication in C/C++
// 这里要特别注意~返回任意重复的一个,赋值duplication[0]
// Return value: true if the input is valid, and there are some duplications in the array number
// otherwise false
public boolean duplicate(int numbers[],int length,int [] duplication) {
if(numbers==null ||length<2 ){
return false;
}
Set<Integer> set=new HashSet<>();
for(int i=0;i<length;i++){
if(!set.add(numbers[i])){
duplication[0]=numbers[i];
return true;
}else{
set.add(numbers[i]);
}
}
return false;
}
}
相关文章推荐
- 【我解C语言面试题系列】008 去除数组中重复数字问题
- 【我解C语言面试题系列】009 特殊的去除数组中重复数字问题
- 问题描述如下: 有2.5亿个整数(这2.5亿个整数存储在一个数组里面,至于数组是放在外存还是内存,没有进一步具体说明); 要求找出这2.5亿个数字里面,不重复的数字的个数; 另外,可用的内存限定为600M; 要求算法尽量高效,最优;
- javascript数字数组去重复项
- 可用的ASP无重复数字随机函数, 数组实现, 并应用于随机显示记录集
- 【我解C语言面试题系列】008 去除数组中重复数字问题
- 有一个数组,存储的元素为1到10000000的任意数,在其中查找出一个重复的数字
- 判断数组中是否包含重复数字
- 删除数组中重复的数字
- 使用数组作为返回类型,返回不重复的随机数字
- 数组a[N],存放了1至N-1个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为o(N)函数原型:
- JAVA去掉一个已排序数组的重复数字
- 去除数组中的重复数字
- 厦门1165 第K小数 树状数组 不重复数字
- 特殊的去除数组中重复数字问题
- 【我解C语言面试题系列】009 特殊的去除数组中重复数字问题
- C/C++面试之算法系列--去除数组中的重复数字
- 软件开发者面试百问-----有一个数组,里面是从1到1,000,000的整数,其中有一个数字出现了两次,你怎么找出那个重复的数字?
- ASP 无重复数字随机函数, 数组实现, 并应用于随机显示记录集 By shawl.qiu
- String str = "12,13,14。15">>>>>>>>>>中的数字转成数组储存