Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หาองค์ประกอบที่ซ้ำกันอย่างน้อยหนึ่งตัวในอาร์เรย์ Read-Only ด้วย C++

ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่หาองค์ประกอบที่ซ้ำกันในอาร์เรย์ที่กำหนด

มาดูขั้นตอนในการแก้ปัญหา

  • เริ่มต้นอาร์เรย์
  • เริ่มต้น counter map เพื่อเก็บความถี่ของแต่ละองค์ประกอบในอาร์เรย์
  • วนลูปผ่านอาร์เรย์
    • นับแต่ละองค์ประกอบ
  • พิมพ์องค์ประกอบที่ความถี่มากกว่า 1

ตัวอย่างโค้ด

#include <bits/stdc++.h>
using namespace std;

int findRepeatingElement(int arr[], int n) {
    map<int, int> frequencies;
    for (int i = 0; i < n; i++) {
        map<int, int>::iterator itr = frequencies.find(arr[i]);
        if (itr != frequencies.end()) {
            itr->second = itr->second + 1;
        } else {
            frequencies.insert({arr[i], 1});
        }
    }
    for (map<int, int>::iterator itr = frequencies.begin(); itr != frequencies.end(); ++itr) {
        if (itr->second > 1) {
            return itr->first;
        }
    }
    return -1;
}

int main() {
    int arr[] = {1, 2, 3, 3, 4, 5, 5, 6};
    cout << findRepeatingElement(arr, 8) << endl;
    return 0;
}

ผลลัพธ์

ถ้าคุณรันโค้ดด้านบน คุณจะได้ผลลัพธ์ดังนี้

3

สรุป

หากคุณมีคำถามในบทช่วยสอนนี้ ให้ระบุในส่วนความคิดเห็น