ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่หาองค์ประกอบที่ซ้ำกันในอาร์เรย์ที่กำหนด
มาดูขั้นตอนในการแก้ปัญหา
- เริ่มต้นอาร์เรย์
- เริ่มต้น 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
สรุป
หากคุณมีคำถามในบทช่วยสอนนี้ ให้ระบุในส่วนความคิดเห็น