【题解】剑指Offer-03 数组中重复的数字

数组中重复的数字(剑指Offer-03)

题面

找出数组中重复的数字。

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

示例

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

限制

1
2 <= n <= 100000

思路

哈希表

代码

1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public:
int a[100010] = {0};
int findRepeatNumber(vector<int>& nums) {
int n = nums.size();
for(int i=0; i<n; i++) {
if(a[nums[i]]++)
return(nums[i]);
}
return -1;
}
};