在C ++中在给定约束下查找重复项

假设我们有一个包含6个不同数字的列表。只有一个数字重复五次。因此,数组中总共有10个元素。仅使用两次比较即可找到重复的数字。如果列表类似于[1、2、3、4、4、4、4、4、5、6],则输出为4。

因为只有10个数字,所以对于任何类型的重复数字,数字的范围将从索引3到5。通过检查这些索引,我们可以找到结果。

示例

#include<iostream>
using namespace std;
int getDuplicate(int array[]) {
   if (array[3] == array[4])
      return array[3];
   else if (array[4] == array[5])
      return array[4];
   else
      return array[5];
}
int main() {
   int a[] = {1, 2, 3, 4, 4, 4, 4, 4, 5, 6};
   cout << "Duplicate element: " << getDuplicate(a);
}

输出结果

Duplicate element: 4