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

C++ प्रोग्राम: सरणी में प्रत्येक तत्व के लिए निकटतम बड़ा मान ज्ञात करना

यहां हम देखेंगे कि सरणी में प्रत्येक तत्व के लिए निकटतम बड़ा मान कैसे ज्ञात करें। यदि किसी तत्व x का अगला तत्व जो उससे बड़ा है, और सरणी में भी मौजूद है, तो वह उस तत्व का बड़ा मान होगा। यदि तत्व मौजूद नहीं है, तो -1 लौटाएं। मान लें सरणी तत्व [10, 5, 11, 6, 20, 12] हैं, तो बड़े तत्व [11, 6, 12, 10, -1, 20] हैं। चूंकि 20 का सरणी में कोई बड़ा मान नहीं है, तो -1 प्रिंट करें।

इसे हल करने के लिए, हम C++ STL में सेट का उपयोग करेंगे। सेट बाइनरी ट्री दृष्टिकोण का उपयोग करके कार्यान्वित किया जाता है। बाइनरी ट्री में हमेशा इनऑर्डर सक्सेसर अगला बड़ा तत्व होता है। इसलिए हम तत्व को O(log n) समय में प्राप्त कर सकते हैं।

उदाहरण

#include <iostream>
#include <set>
using namespace std;

void nearestGreatest(int arr[], int n) {
    set tempSet;
    for (int i = 0; i < n; i++)
        tempSet.insert(arr[i]);
    for (int i = 0; i < n; i++) {
        auto next_greater = tempSet.upper_bound(arr[i]);
        if (next_greater == tempSet.end())
            cout << -1 << " ";
        else
            cout << *next_greater << " ";
    }
}

int main() {
    int arr[] = {10, 5, 11, 10, 20, 12};
    int n = sizeof(arr) / sizeof(arr[0]);
    nearestGreatest(arr, n);
}

आउटपुट

11 10 12 11 -1 20
  1. - C++ में सरणी के प्रत्येक तत्व का सरपासर काउंट खोजें

    मान लीजिए एक सरणी A दी गई है। हमें उस सरणी में प्रत्येक तत्व के सरपासर की संख्या ज्ञात करनी है। सरपासर वे बड़े तत्व हैं जो वर्तमान तत्व के दाईं ओर सरणी में मौजूद हैं। मान लीजिए A = {2, 7, 5, 3, 0, 8, 1}, सरपासर हैं {4, 1, 1, 1, 2, 0, 0}, इसलिए 2 के दाईं ओर 4 संख्याएं हैं जो 2 से बड़ी हैं, और इसी नि

  1. - C++ प्रोग्राम: सरणी के तत्वों को तब तक जोड़ें जब तक प्रत्येक तत्व k से बड़ा या बराबर न हो जाए

    हमारे पास असॉर्ट किए गए तत्वों की एक सरणी है यानी arr[] और एक पूर्णांक K है, और हमें उन न्यूनतम चरणों की संख्या ज्ञात करनी है जिनमें सरणी के तत्वों को जोड़कर सभी तत्वों को K से बड़ा या बराबर बनाया जा सके। हम सरणी के दो तत्वों को जोड़कर उन्हें एक बना सकते हैं। उदाहरण Input: arr[] = {1 10 12 9 2 3},

  1. - C++ में सरणी के तत्वों को तब तक जोड़ना जब तक प्रत्येक तत्व k से बड़ा या बराबर न हो जाए

    सरणी (Array) - एक सरणी एक ही डेटा प्रकार के तत्वों का एक कंटेनर है, जिसके तत्व 0 अनुक्रमित होते हैं। इस समस्या में, हम पूर्णांकों की एक सरणी का उपयोग करेंगे। और जांचेंगे कि क्या सभी तत्व दी गई संख्या से बड़े हैं या नहीं। यहां हम जांचेंगे कि सरणी के सभी तत्व दी गई संख्या k से बड़े या बराबर हैं या नही