题目链接
思路分析
运用占位,如果i!=nums[i]则说明在该坑位的数与该下标不相等,如果nums[i]==nums[nums[i]]则说明两个值重复
class Solution {
public:
int findRepeatNumber(vector<int>& nums) {
std::ios::sync_with_stdio(false);
int n = nums.size();
for(int i = 0; i < n; i++)
if(nums[i] != i)
if(nums[i] == nums[nums[i]]) return nums[i];
else swap(nums[i], nums[nums[i]]);
return -1;
}
};