题意:
找出数组中重复的数字。
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
示例 1:
输入:[2, 3, 1, 0, 2, 5, 3]
输出:2 或 3
分析:
这里使用集合Set方法。
1.首先新建一个哈希表set(前提)
Set<Integer> dic = new HashSet<>();
- 通过循环遍历
如果set里面有重复的元素,则返回这个重复的元素
如果set里面没有这个元素,则添加进去 ,后返回-1
(通过set.contains(num); 方法判断有无)
**set.add(num)**进行添加
3.最后返回重复元素,
否则返回-1
Java代码实现:
class Solution {
public int findRepeatNumber(int[] nums) {
Set<Integer> dic = new HashSet<>(); //新建一个集合哈希表
for(int num : nums){
if(dic.contains(num)) return num;
dic.add(num);
}
return -1;
}
}