একটি অ্যারে দেওয়া থাকলে সেটিতে সবচেয়ে বেশি বার উপস্থিত উপাদানটি বের করতে হবে।
উদাহরণ
ইনপুট: [1, 2, 3, 3, 2, 2, 1, 1, 2, 3, 4]
আউটপুট: 2 (২ মোট ৪ বার এসেছে)
অ্যালগরিদম (হ্যাশ ম্যাপ ব্যবহার)
- অ্যারে ইনিশিয়ালাইজ করুন।
unordered_mapদিয়ে প্রতিটি উপাদানের ফ্রিকোয়েন্সি গণনা করুন।- ম্যাপ ট্রাভার্স করে সর্বোচ্চ ফ্রিকোয়েন্সি বিশিষ্ট উপাদান বের করুন।
অ্যালগরিদম (সর্টিং ব্যবহার)
- অ্যারে সর্ট করুন।
- একই উপাদানগুলো পাশাপাশি থাকবে।
- লিনিয়ার স্ক্যান করে সর্বোচ্চ ফ্রিকোয়েন্সি বের করুন।
সি++ ইমপ্লিমেন্টেশন (হ্যাশ ম্যাপ)
#include <bits/stdc++.h>
using namespace std;
int getMostFrequentNumber(int arr[], int n) {
unordered_map freq;
for (int i = 0; i < n; i++) freq[arr[i]]++;
int maxCount = 0, res = -1;
for (auto& p : freq) {
if (p.second > maxCount) {
maxCount = p.second;
res = p.first;
}
}
return res;
}
int main() {
int arr[] = {1, 2, 3, 3, 2, 2, 1, 1, 2, 3, 4};
int n = 11;
cout << getMostFrequentNumber(arr, n) << endl; // 2
return 0;
}
আউটপুট
2