在 C++ 中查找排序数组中频率大于或等于 n/2 的元素。


假设我们有一个大小为 n 的数组。此数组已排序。有一个元素的频率大于或等于 n/2,其中 n 是数组中元素的数量。所以如果数组类似于 [3, 4, 5, 5, 5],则输出将为 5。

如果我们仔细观察这些类型的数组,我们可以很容易地注意到频率大于或等于 n/2 的数字也存在于索引 n/2 处。因此,该元素可以在位置 n/2 找到。

示例

 实时演示

Source Code:
#include<iostream>
using namespace std;
int higherFreq(int arr[], int n) {
   return arr[n / 2];
}
int main() {
   int arr[] = { 1, 2, 3, 4 , 4, 4, 4, 4, 4, 5};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << "The number " << higherFreq(arr, n) << " has occurred more than or equal to "<<n <<"/2 amount of times";
}

输出 -

The number 4 has occurred more than or equal to 10/2 amount of times

更新于: 2019-12-19

115 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.