একটি পূর্ণসংখ্যা অ্যারে দেওয়া থাকলে, সেটিতে সবচেয়ে বেশি বার আসা এলিমেন্টটি বের করতে হবে।
ইনপুট-১
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