1、题目描述
找出数组中重复的数字。
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
2、算法分析
既然是找出重复的,那么在java中比较重要的一个工具Set,里面的元素无序且不能有重复。
遍历数组, 如果Set集合中包含重复元素,直接返回即可。
3、代码实现
class Solution {
public int findRepeatNumber(int[] nums) {
Set<Integer> set = new HashSet<>();
for(int i = 0;i < nums.length;i++){
if(set.contains(nums[i])){
return nums[i];
}
set.add(nums[i]);
}
return -1;
}
}