class Solution {
public:
int duplicateInArray(vector<int>& nums) {
int n = nums.size();
for(auto x: nums)
{
if(x < 0 || x > n - 1) return -1;
}
for(int i = 0; i < n; i ++)
{
while(nums[nums[i]] != nums[i]) swap(nums[i], nums[nums[i]]);//先通过排序将数组按照顺序表示出来
if(nums[i] != i) return nums[i];//如果有的位置不是该数,则说明这个数字至少有两个,则选一个即可
}
return -1;
}
};