#include <string>
#include <iostream>
#include <vector>
using namespace std;
class Solution {
public:
// Parameters:
// numbers: an array of integers
// length: the length of array numbers
// duplication: (Output) the duplicated number in the array number
// Return value: true if the input is valid, and there are some duplications in the array number
// otherwise false
bool duplicate(int numbers[], int length, int* duplication) {
bool find=false;
for(int i=0;i<length;i++)
{
if(numbers[i]<0||numbers[i]>length-1)
return false;
while(i!=numbers[i])
{
if(numbers[numbers[i]]==numbers[i])
{
find=true;
(*duplication)=numbers[i];
break;
}
int temp=numbers[numbers[i]];
numbers[numbers[i]]=numbers[i];
numbers[i]=temp;
}
if(find)
break;
}
if(find)
{
for(int i=0;i<length;i++)
if(numbers[i]<0||numbers[i]>length-1)
return false;
return true;
}
return false;
}
};
duplicate
最新推荐文章于 2021-03-20 13:28:51 发布