Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm phần tử xuất hiện nhiều nhất trong mảng C++


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.