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

ค้นหาหนึ่งในองค์ประกอบที่ทำซ้ำหลายรายการในอาร์เรย์แบบอ่านอย่างเดียวใน C++


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

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

  • เริ่มต้นอาร์เรย์

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

  • วนซ้ำบนอาร์เรย์

    • นับแต่ละองค์ประกอบ

  • พิมพ์องค์ประกอบที่มีความถี่มากกว่า 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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น