Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

पूर्णांकों के दिए गए सरणी में सबसे अधिक बार आने वाले तत्व को खोजने के लिए C++ में एक प्रोग्राम लिखें

मान लीजिए कि हमारे पास आकार N के पूर्णांकों की एक सरणी है। कार्य पूर्णांकों के दिए गए सरणी में मौजूद सबसे लगातार तत्व को खोजना है। उदाहरण के लिए,

इनपुट-1 -

N = 8
A[ ] = {1,2,4,3,3,1,1,5}

आउटपुट -

1

स्पष्टीकरण - पूर्णांकों के दिए गए सरणी में, सबसे अधिक दिखाई देने वाली संख्या '1' है। इस प्रकार आउटपुट '1' है।

इनपुट-2 -

N = 6
A[ ] = {1,4,4,4,1,1}

आउटपुट-ए -

1

आउटपुट-बी -

4

व्याख्या:पूर्णांकों के दिए गए सरणी में, सबसे अधिक दिखाई देने वाली संख्या '1' और '4' है। इस प्रकार हम उनमें से किसी एक को आउटपुट वापस कर सकते हैं।

इस समस्या को हल करने का तरीका

दिए गए सरणी में कई पूर्णांक होते हैं जिसमें हमें सरणी में मौजूद सबसे अधिक बार आने वाले तत्व को खोजना होता है। इस समस्या को रैखिक समय O(n) और रैखिक स्थान O(n) में हल करने के लिए, हम हैशमैप के दृष्टिकोण का उपयोग कर सकते हैं।

इस दृष्टिकोण में, हम एक अनियंत्रित नक्शा (एसटीएल लाइब्रेरी) बनाएंगे जिसमें की-वैल्यू पेयर होगा जिसमें कुंजी एक तत्व होगी और वैल्यू तत्व की घटना होगी। मानचित्र के माध्यम से यात्रा करते समय हम संख्या की अधिकतम आवृत्ति पाएंगे और संख्या को आउटपुट के रूप में वापस कर देंगे।

  • इनपुट आकार N की एक सरणी लें।

  • एक पूर्णांक फ़ंक्शन maxOccurrence(int A[], int size) एक इनपुट के रूप में एक सरणी और उसका आकार लेता है और अधिकतम आवृत्ति के साथ संख्या देता है।

  • कुंजी को एक तत्व और मान को इसकी आवृत्ति के रूप में लेकर सरणी के सभी तत्वों का हैशमैप बनाना।

  • मानचित्र पर पुनरावृत्ति करना और जाँच करना कि क्या किसी भी तत्व की आवृत्ति सबसे अधिक है, तो परिणाम को संख्या के रूप में वापस कर दें। अन्यथा, यदि सरणी में कोई संख्या मौजूद नहीं है तो '-1' लौटाएं।

उदाहरण

#include<bits/stdc++.h>
using namespace std;
int maxOccurrence(int A[], int size){
   int mxcount=0;
   int res=-1;
   unordered_map<int,int>mp;
   for(int i=0;i<size;i++){
      mp[A[i]]++;
   }
   for(auto x:mp){
      if(x.second>mxcount){
         res= x.first;
         mxcount=x.second;
      }
   }
   return res;
}
int main(){
   int N=6;
   int A[N]= {1,4,4,4,2,1};
   int ans= maxOccurrence(A,N);
   cout<<ans<<endl;
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाएंगे, तो यह आउटपुट को इस रूप में प्रिंट करेगा,

4

4 की आवृत्ति 3 है, जो दी गई सरणी में अन्य सभी संख्याओं से अधिकतम आवृत्ति है।


  1. सी ++ प्रोग्राम एक ऐरे का सबसे बड़ा तत्व खोजने के लिए

    एक सरणी में कई तत्व होते हैं और एक सरणी में सबसे बड़ा तत्व वह होता है जो अन्य तत्वों से बड़ा होता है। उदाहरण के लिए। 5 1 7 2 4 उपरोक्त सरणी में, 7 सबसे बड़ा तत्व है और यह इंडेक्स 2 पर है। किसी सरणी के सबसे बड़े तत्व को खोजने का प्रोग्राम इस प्रकार दिया गया है। उदाहरण #include <iostream> u

  1. सी # प्रोग्राम सबसे लगातार तत्व खोजने के लिए

    मान लें कि हमारा स्ट्रिंग है - String s = "HeathLedger!"; अब एक नया ऐरे बनाएं। int []cal = new int[maxCHARS]; एक नई विधि बनाएं और उसमें स्ट्रिंग और नई सरणी दोनों को पास करें। किसी वर्ण की अधिकतम आवृत्ति का पता लगाएं। static void calculate(String s, int[] cal) {    for (int i =

  1. पायथन में एक छिपे हुए सरणी में सबसे लगातार तत्व के सूचकांक का पता लगाने के लिए कार्यक्रम

    मान लीजिए, हमें टेस्टअरे नामक एक वर्ग दिया गया है जिसमें एक निजी सरणी है जिसमें केवल 0 या 1 मान हो सकते हैं; और दो सार्वजनिक सदस्य कार्य लंबाई () और क्वेरी ()। फ़ंक्शन लंबाई () सरणी की लंबाई देता है और फ़ंक्शन क्वेरी () सरणी में विभिन्न मानों की तुलना करते हुए तीन अलग-अलग मान देता है। फ़ंक्शन इनपुट