元素在 C++ 排序数组中出现超过 25%
假设我们有一个数组 A。有一些元素。有些元素是常见的。我们必须返回一个在数组中出现超过 25% 的元素。因此,如果 A = [1, 2, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7],则 4 出现了四次。这超过了 12(数组的大小)的 25%
要解决此问题,我们将遵循以下步骤 -
- 读取元素并存储其各自的频率
- 如果频率大于数组大小的 25%,则返回结果。
示例
让我们看以下实现以获得更好的理解 -
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int findSpecialInteger(vector<int>& arr) {
int n = arr.size();
int req = n / 4;
unordered_map <int, int> m;
int ans = -1;
for(int i = 0; i < n; i++){
m[arr[i]]++;
if(m[arr[i]] > req)ans = arr[i];
}
return ans;
}
};
main(){
Solution ob;
vector<int> c = {1,2,4,4,4,4,5,5,6,6,7,7};
cout << ob.findSpecialInteger(c);
}输入
[1,2,4,4,4,4,5,5,6,6,7,7]
输出
4
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP