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

题面

找出数组中重复的数字。

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

示例

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

限制

12 <= n <= 100000

思路

哈希表

代码

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