0%

剑指offer03(简单):数组中重复的数字

题目

剑指offer03:数组中重复的数字

找出数组中重复的数字。

在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

示例:

1
2
3
输入:
[2, 3, 1, 0, 2, 5, 3]
输出:23

代码

使用一个HashSet来辅助。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public int findRepeatNumber(int[] nums) {

//创建一个哈希表(空的)
HashSet<Integer> set = new HashSet<>();

//依次往哈希表里添数组中的元素
for(int x:nums) {
if(set.contains(x)) {
return x;
}
set.add(x);
}

return -1;

}
}

随笔

Java类HashSet

1、HashSet的特点

由它创建的对象,是一个无序的且不允许出现重复元素的集合。

2、创建一个哈希表

1
HashSet<Integer> set = new HashSet<>();

3、常用方法

(1)contains(Integer x)

判断哈希表里是否包含x

参数列表:Integer x

返回值类型:boolean

(2)add(Integer x)

往哈希表里添一个元素

参数列表:integer value

返回值类型:boolean

遍历数组的元素

1
2
3
for(int x:nums) {

}

其中,x为数组nums中的元素。

-------------本文结束 感谢您的阅读-------------
觉得文章写的不错的话,请我喝瓶怡宝儿吧~ 🤞