长度为n的数组,存放0-n-1的int数,找出数组中第一个重复的元素。
bool duplicate(int numbers[], int length, int* duplication) {
if (length <= 0 || numbers == nullptr) {
return false;
}
for (int i = 0; i < length; i++) {
if (numbers[i]<0 || numbers[i]>=length) {
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;
}