ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่ค้นหาองค์ประกอบที่ซ้ำกันในอาร์เรย์ที่กำหนด
มาดูขั้นตอนการแก้ปัญหากัน
-
เริ่มต้นอาร์เรย์
-
เริ่มต้นตัวนับแผนที่เพื่อเก็บความถี่ของแต่ละองค์ประกอบในอาร์เรย์
-
วนซ้ำบนอาร์เรย์
-
นับแต่ละองค์ประกอบ
-
-
พิมพ์องค์ประกอบที่มีความถี่มากกว่า 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; } } } int main() { int arr[] = {1, 2, 3, 3, 4, 5, 5, 6}; cout << findRepeatingElement(arr, 8) << endl; return 0; }
ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
3
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น