题目描述
核心思想就是交换数组元素位置
样例
class Solution {
public:
int duplicateInArray(vector<int>& nums) {
int n=nums.size();
//首先遍历一遍数组,不满足要求直接返回-1
for (int i=0;i<n;i++){
if(nums[i]>=n || nums[i] <0 ) {
return -1;
}
}
//若数组满足要求接着运行
for(int i=0;i<n;i++){
while(i!=nums[i] && nums[nums[i]]!=nums[i]) swap(nums[i],nums[nums[i]]);
if( nums[i]!=i && nums[i] == nums[nums[i]]) return nums[i];
}
return -1;
}
};