Cho mảng số nguyên, tìm phần tử có tần suất lớn nhất. Nếu nhiều phần tử cùng tần suất max, trả về bất kỳ cái nào. Ví dụ:
Đầu vào 1: {1,2,4,3,3,1,1,5} → Đầu ra: 1 (xuất hiện 3 lần).
Đầu vào 2: {1,4,4,4,1,1} → Đầu ra: 1 hoặc 4 (cùng 3 lần).
Phương pháp: Hashmap
- Duyệt mảng, đếm tần suất vào
unordered_map. - Duyệt map, tìm phần tử có count lớn nhất.
Ví dụ mã nguồn
#include <bits/stdc++.h>
using namespace std;
int maxOccurrence(int A[], int size) {
unordered_map<int,int> mp;
for (int i=0;i maxCount) {
maxCount = p.second;
res = p.first;
}
}
return res;
}
int main() {
int A[] = {1,4,4,4,2,1};
int n = 6;
cout << maxOccurrence(A, n); // 4
return 0;
}
Kết quả
4
Số 4 xuất hiện 3 lần, nhiều nhất.