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) में हल करने के लिए, हम हैशमैप के दृष्टिकोण का उपयोग कर सकते हैं।

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

  • आकार 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. - C++ में सरणी का सबसे बड़ा एलिमेंट खोजने का प्रोग्राम

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

  1. - C# प्रोग्राम सबसे अधिक बार आने वाले तत्व को ढूंढने के लिए

    मान लें कि हमारी स्ट्रिंग है: String s = HeathLedger!; अब एक नई सरणी बनाएं। int[] cal = new int[maxCHARS]; एक नई विधि बनाएं और इसमें उपरोक्त घोषित स्ट्रिंग और नई सरणी दोनों पास करें। किसी कैरेक्टर की अधिकतम घटना ढूंढें। static void calculate(String s, int[] cal) { for (int i = 0; i < s.Length;

  1. - Python में छिपे हुए सरणी में सबसे अधिक बार आने वाले तत्व का इंडेक्स खोजें

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