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

C++ में सरणी के k अधिकतम तत्वों को मूल क्रम में ढूंढें


इस समस्या में, हमें n तत्वों की एक सरणी arr[] दी गई है। हमारा कार्य सरणी के k अधिकतम तत्वों को मूल क्रम में ढूंढना है।

हमें सरणी के k अधिकतम तत्व ढूंढने हैं और फिर उन्हें प्रिंट करना है जैसे वे मूल रूप से अनुक्रमित थे।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट: arr[] = {5, 1, 3, 6, 2}, k = 2

आउटपुट: 5, 6

व्याख्या:

सरणी के सबसे बड़े दो तत्व 6 और 5 हैं। लेकिन 5 मूल सरणी में 6 से पहले आता है इसलिए हमने उस तरह प्रिंट किया है।

समाधान दृष्टिकोण

समस्या को हल करने के लिए, और मूल क्रम में k तत्व प्रिंट करने के लिए।

इसके लिए हम एक decArray बनाएंगे जो arr[] के तत्वों को अवरोही क्रम में संग्रहीत करेगा। फिर हम मूल सरणी को ट्रैवर्स करेंगे और decArray[] का उपयोग करके k सबसे बड़े तत्व को क्रम में प्रिंट करेंगे।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,

उदाहरण

#include <bits/stdc++.h>
using namespace std;

bool seachVal(int decArr[], int k, int ele){
    for(int i = 0; i < k; i++){
        if( decArr[i] == ele)
            return true;
    }
    return false;
}

void printKMaxEle(int arr[], int k, int n) {
    int decArr[n];
    for(int i = 0; i < n ; i++){
        decArr[i] = arr[i];
    }
    sort(decArr, decArr + n, greater<int>());
    for (int i = 0; i < n; ++i)
        if ( seachVal(decArr, k, arr[i]) )
            cout<<arr[i]<<" ";
}

int main() {
    int arr[] = { 15, 1, 3, 6, 2, 34, 8, 9 };
    int n = sizeof(arr) / sizeof(arr[0]);
    int k = 3;
    cout<<k<<" maximum elements of the array in their original order are \n";
    printKMaxEle(arr, k, n);
    return 0;
}

आउटपुट

3 maximum elements of the array in their original order are 15 34 9

  1. - C++ में लगातार तत्वों के XOR का उपयोग करके सरणी के तत्व ढूंढना

    मान लीजिए हमें n तत्वों की सूची ढूंढनी है। लेकिन हमारे पास वास्तविक सरणी के दो लगातार तत्वों का XOR मान है। साथ ही वास्तविक सरणी का पहला तत्व दिया गया है। यदि सरणी के तत्व a, b, c, d, e, f हैं, तो दी गई सरणी a^b, b^c, c^d, d^e, e^f होगी। चूंकि पहला नंबर a दिया गया है, इससे हम सभी नंबर ढूंढ सकते हैं

  1. - C++ में सरणी में अधिकतम GCD वाली जोड़ी ढूंढना

    मान लीजिए हमारे पास धनात्मक पूर्णांकों की एक सरणी है। हमारा कार्य सरणी से पूर्णांकों की जोड़ी ढूंढना है, जहां GCD मान अधिकतम है। मान लीजिए A = {1, 2, 3, 4, 5}, तो आउटपुट 2 है। जोड़ी (2, 4) का GCD 2 है, अन्य GCD मान 2 से कम हैं।इस समस्या को हल करने के लिए, हम एक काउंट सरणी बनाए रखेंगे जो प्रत्येक तत्

  1. - C++ में दिए गए सरणी के एलिमेंट्स के फैक्टोरियल का GCD खोजें

    मान लीजिए हमारे पास N एलिमेंट्स वाली एक सरणी A है। हमें सरणी के सभी एलिमेंट्स के फैक्टोरियल का GCD निकालना है। मान लीजिए एलिमेंट्स {3, 4, 8, 6} हैं, तो फैक्टोरियल का GCD 6 होगा। यहां हम ट्रिक देखेंगे। चूंकि दो संख्याओं का GCD वह सबसे बड़ी संख्या है जो दोनों को विभाजित करती है, तो दो संख्याओं के फैक्