কম্পিউটার

পূর্ণসংখ্যার একটি প্রদত্ত অ্যারের মধ্যে সবচেয়ে ঘন ঘন উপাদান খুঁজে পেতে C++ এ একটি প্রোগ্রাম লিখুন


ধরুন আমাদের কাছে N আকারের পূর্ণসংখ্যার একটি অ্যারে রয়েছে। কাজটি হল প্রদত্ত পূর্ণসংখ্যার বিন্যাসে উপস্থিত সবচেয়ে ঘন ঘন উপাদানটি খুঁজে বের করা। উদাহরণস্বরূপ,

ইনপুট-1

N = 8
A[ ] = {1,2,4,3,3,1,1,5}

আউটপুট

1

ব্যাখ্যা − প্রদত্ত পূর্ণসংখ্যার বিন্যাসে, সবচেয়ে বেশি প্রদর্শিত সংখ্যা হল '1'। সুতরাং আউটপুট হল '1'।

ইনপুট-2

N = 6
A[ ] = {1,4,4,4,1,1}

আউটপুট-এ

1

আউটপুট-বি

4

ব্যাখ্যা:প্রদত্ত পূর্ণসংখ্যার বিন্যাসে, সবচেয়ে বেশি প্রদর্শিত সংখ্যা হল '1' এবং '4'। এইভাবে আমরা তাদের যেকোনো একটিতে আউটপুট ফেরত দিতে পারি।

এই সমস্যা সমাধানের পদ্ধতি

প্রদত্ত অ্যারেটিতে একাধিক পূর্ণসংখ্যা রয়েছে যেখানে আমাদের অ্যারেতে উপস্থিত সর্বাধিক ঘন ঘন উপাদানটি খুঁজে বের করতে হবে। লিনিয়ার টাইম O(n) এবং লিনিয়ার স্পেস O(n) এ এই সমস্যাটি সমাধান করতে, আমরা একটি হ্যাশম্যাপের পদ্ধতি ব্যবহার করতে পারি।

এই পদ্ধতিতে, আমরা কী-মানের জোড়া নিয়ে একটি অ-ক্রমবিহীন মানচিত্র (STL লাইব্রেরি) তৈরি করব যেখানে কী হবে একটি উপাদান এবং মানটি হবে উপাদানটির উপস্থিতি। মানচিত্রের মধ্য দিয়ে যাওয়ার সময় আমরা সংখ্যাটির সর্বাধিক উপস্থিতি খুঁজে পাব এবং সংখ্যাটিকে আউটপুট হিসাবে ফিরিয়ে দেব।

  • ইনপুট নিন সাইজের একটি অ্যারে N.

  • একটি পূর্ণসংখ্যা ফাংশন maxOccurrence(int A[], int size) একটি অ্যারে এবং এর আকার একটি ইনপুট হিসাবে নেয় এবং সর্বাধিক ফ্রিকোয়েন্সি সহ সংখ্যাগুলি প্রদান করে৷

  • অ্যারের সমস্ত উপাদানের একটি হ্যাশম্যাপ তৈরি করা একটি উপাদান হিসাবে কী এবং এর ফ্রিকোয়েন্সি হিসাবে মান নিয়ে৷

  • মানচিত্রের উপর পুনরাবৃত্তি করুন এবং পরীক্ষা করুন যে কোনো উপাদানের সর্বাধিক ফ্রিকোয়েন্সি আছে কিনা তারপর ফলাফলটি সংখ্যা হিসাবে ফেরত দিন। অন্যথায়, যদি অ্যারেতে কোনো সংখ্যা না থাকে তাহলে '-1' রিটার্ন করুন।

উদাহরণ

#include<bits/stdc++.h>
using namespace std;
int maxOccurrence(int A[], int size){
   int mxcount=0;
   int res=-1;
   unordered_map<int,int>mp;
   for(int i=0;i<size;i++){
      mp[A[i]]++;
   }
   for(auto x:mp){
      if(x.second>mxcount){
         res= x.first;
         mxcount=x.second;
      }
   }
   return res;
}
int main(){
   int N=6;
   int A[N]= {1,4,4,4,2,1};
   int ans= maxOccurrence(A,N);
   cout<<ans<<endl;
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই, তাহলে এটি আউটপুটটি

হিসাবে প্রিন্ট করবে
4

4-এর ফ্রিকোয়েন্সি 3, যা প্রদত্ত অ্যারের অন্যান্য সমস্ত সংখ্যা থেকে সর্বাধিক ফ্রিকোয়েন্সি।


  1. একটি প্রদত্ত সিকোয়েন্সের দীর্ঘতম ক্রমবর্ধমান অনুক্রম খুঁজে পেতে C++ প্রোগ্রাম

  2. একটি অ্যারের সবচেয়ে বড় উপাদান খুঁজে পেতে C++ প্রোগ্রাম

  3. সবচেয়ে ঘন ঘন উপাদান খুঁজে পেতে C# প্রোগ্রাম

  4. পাইথনে একটি গোপন অ্যারেতে সর্বাধিক ঘন ঘন উপাদানের সূচক খুঁজে বের করার জন্য প্রোগ্রাম