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

Tìm phần tử xuất hiện hơn 1 lần trong mảng C

Tìm tất cả phần tử có tần suất > 1 trong mảng.

Ví dụ

Mảng: {1, 5, 2, 5, 3, 1, 5, 2, 7}

Tần suất: 1→2, 5→3, 2→2, 3→1, 7→1

Kết quả: 1, 2, 5

Chương trình

#include <iostream>
#include <map>
using namespace std;

void printDupFreq(int arr[], int n) {
    map<int, int> freq;
    for (int i = 0; i < n; i++) freq[arr[i]]++;
    
    for (auto &p : freq)
        if (p.second > 1) cout << p.first << " ";
}

int main() {
    int arr[] = {1, 5, 2, 5, 3, 1, 5, 2, 7};
    int n = sizeof(arr)/sizeof(arr[0]);
    cout << "Phan tu xuat hien > 1 lan: ";
    printDupFreq(arr, n);
    return 0;
}

Kết quả

Phan tu xuat hien > 1 lan: 1 2 5