1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复
,其它均只出现一次。
#include <iostream>
using namespace std;
int findRepeatNum(int* arr, int len) {
int result = 0;
for (int i = 1; i < len; ++i) {
result ^= i;
}
for (int i = 0; i < len; ++i) {
result ^= arr[i];
}
return result;
}
int main() {
int arr[] = { 1, 3, 2, 4, 2, 5 };
cout << "repeat num: " << findRepeatNum(arr, sizeof(arr) / sizeof(int))
<< endl;
return 0;
}
,其它均只出现一次。
每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助存储空间,能否设计一个算法实现?