

#include <iostream>
bool duplicate(int numbers[], int length, int * duplication){
if(numbers == nullptr || length <= 0){
return false;
}
for(int i = 0;i < length;i ++){
if(numbers[i] < 0 || numbers[i] > length - 1)
return false;
}
for(int i = 0;i < length;i ++){
while(numbers[i] != i){
if(numbers[i] == numbers[numbers[i]]){
* duplication = numbers[i];
return true;
}
int temp = numbers[i];
numbers[i] = numbers[temp];
numbers[temp] = temp;
}
}
return false;
}
int main(int argc, const char * argv[]) {
int numbers[] = {3, 1, 2, 0, 2, 5, 3};
int dup;
if(duplicate(numbers, 7, & dup)){
std::cout << dup << std::endl;
}
}
还没有评论,来说两句吧...