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