কম্পিউটার টিউটোরিয়াল

C++-এ অ্যারেতে সবচেয়ে বেশি ফ্রিকোয়েন্ট এলিমেন্ট বের করা

একটি পূর্ণসংখ্যা অ্যারে দেওয়া থাকলে, সেটিতে সবচেয়ে বেশি বার আসা এলিমেন্টটি বের করতে হবে।

ইনপুট-১

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

আউটপুট

1

ইনপুট-২

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

আউটপুট

1 বা 4 (দুটোই ৩ বার)

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

O(n) টাইম এবং O(n) স্পেসে unordered_map ব্যবহার করে সমাধান করা যায়।

  • অ্যারে সাইজ N ইনপুট নিন।
  • maxOccurrence(int A[], int size) ফাংশন সর্বোচ্চ ফ্রিকোয়েন্সি বালা এলিমেন্ট রিটার্ন করবে।
  • হ্যাশম্যাপে এলিমেন্ট -> ফ্রিকোয়েন্সি সংরক্ষণ করুন।
  • ম্যাপে ইটারেট করে সর্বোচ্চ ফ্রিকোয়েন্সি বালা কী (এলিমেন্ট) বের করুন।

উদাহরণ

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

int maxOccurrence(int A[], int size) {
    int mxCount = 0, 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, A[N] = {1,4,4,4,2,1};
    cout << maxOccurrence(A, N) << endl;
    return 0;
}

আউটপুট

4
  1. C++ প্রোগ্রাম: দিয়ে गये সিকোয়েন্স থেকে লংগেস্ট ইনক্রিজিং সাবসিকোয়েন্স খুঁজে বের করা

  2. অ্যারেতে সবচেয়ে বড় এলিমেন্ট (Largest Element) বের করার C++ প্রোগ্রাম

  3. C#-এ স্ট্রিংয়ে সর্বাধিক ফ্রিকোয়েন্সি वाला ক্যারেক্টার বের করা

  4. লুকানো অ্যারেতে সবচেয়ে বেশি ফ্রিকোয়েন্ট এলিমেন্টের ইনডেক্স বের করা