हमें एक सरणी दी गई है और हमें उससे सबसे अधिक बार आने वाला तत्व ज्ञात करना है। आइए एक उदाहरण देखते हैं।
इनपुट
arr = [1, 2, 3, 3, 2, 2, 1, 1, 2, 3, 4]
आउटपुट
2
उपरोक्त सरणी में, 2 चार बार आता है जो सरणी में किसी अन्य से अधिक बार है।
एल्गोरिदम - 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