假设我们有一个包含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