हमें एक सरणी दी गई है और हमें इसमें से सबसे अधिक बार आने वाले तत्व को खोजने की आवश्यकता है। आइए एक उदाहरण देखें।
इनपुट
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