(1) 方法一:(当N为比较大时警惕溢出)
将1001个元素相加减去1,2,3,……1000数列的和,得到的差即为重复的元素。
(2) 方法二:异或操作 (基于相同的两个元素,异或的结果为0,相当于‘抵消’)
void FindRepeat(int array[], int length)
{
int result = 0;
for(int i=1;i<=1000;i++)
result ^= i;
for(int i=0;i<=1000;i++)
result ^= array[i];
cout << result << endl;
}
本文介绍了两种在数组中查找重复元素的有效方法:一种通过计算总和并进行差值对比得出重复项;另一种利用异或操作特性实现。两种方法均避免了传统查找中的高复杂度问题。
499

被折叠的 条评论
为什么被折叠?



