আমাদের একটি অ্যারে দেওয়া হয়েছে এবং আমাদের এটি থেকে সবচেয়ে ঘন ঘন উপাদান খুঁজে বের করতে হবে। আসুন একটি উদাহরণ দেখি।
ইনপুট
arr = [1, 2, 3, 3, 2, 2, 1, 1, 2, 3, 4]
আউটপুট
2
উপরের অ্যারেতে, 2টি 4 বার ঘটে যা অ্যারের অন্য যেকোনটির চেয়ে বেশি ঘন ঘন হয়৷
অ্যালগরিদম - 1
-
অ্যারে শুরু করুন৷
৷ -
প্রতিটি উপাদানের ফ্রিকোয়েন্সি সংরক্ষণ করতে একটি মানচিত্র শুরু করুন৷
-
প্রতিটি উপাদানের ফ্রিকোয়েন্সি গণনা করুন এবং মানচিত্রে সংরক্ষণ করুন।
-
মানচিত্রের উপর পুনরাবৃত্তি করুন এবং সর্বাধিক ফ্রিকোয়েন্সি সহ উপাদানটি খুঁজুন।
- উপাদানটি ফেরত দিন।
অ্যালগরিদম - 2
- অ্যারে শুরু করুন।
- প্রদত্ত অ্যারে সাজান।
- সর্বোচ্চ গণনা, ফলাফল এবং বর্তমান উপাদান গণনার জন্য ভেরিয়েবল বজায় রাখুন।
- অ্যারের উপর পুনরাবৃত্তি করে সর্বাধিক গণনা উপাদানটি খুঁজুন।
- একই উপাদান পাশাপাশি থাকে।
- ফলাফল ফেরত দিন।
বাস্তবায়ন
C++
-এ উপরের অ্যালগরিদমের বাস্তবায়ন নিচে দেওয়া হল#include <bits/stdc++.h>
using namespace std;
int getMostFrequentNumber(int arr[], int n) {
unordered_map<int, int> elements;
for (int i = 0; i < n; i++) {
elements[arr[i]]++;
}
int maxCount = 0, res = -1;
for (auto i : elements) {
if (maxCount < i.second) {
res = i.first;
maxCount = i.second;
}
}
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;
return 0;
} আউটপুট
আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
2