3 数组中重复的数字
3 数组中重复的数字
思路
- 数组下标法
- 哈希map
需要考虑的错误输入
- 空数组
- 数组中的元素必须在0~n-1范围
代码
class Solution {
public:
int findRepeatNumber(vector<int>& nums) {
if (nums.empty()) return 0;
for (int i = 0; i < nums.size(); i++)
{
if (nums[i] > nums.size() - 1 || nums[i] < 0)
return -1;
}
for (int i = 0; i < nums.size(); i++)
{
if (nums[i] != i)
{
if (nums[i] == nums[nums[i]])
return nums[i];
swap(nums[i], nums[nums[i]]);
}
}
return -1;
}
};