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

C++ में अगला बड़ा तत्व


अगला बड़ा तत्व वह तत्व है जो उसके बाद पहला बड़ा तत्व है। आइए एक उदाहरण देखते हैं।

arr = [4, 5, 3, 2, 1]

4 के लिए अगला बड़ा तत्व 5 है और तत्वों 3, 2, 1 के लिए अगला बड़ा तत्व -1 है क्योंकि उनके बाद कोई बड़ा तत्व नहीं है।

एल्गोरिदम

  • सरणी को यादृच्छिक संख्याओं से आरंभ करें।
  • एक स्टैक आरंभ करें।
  • पहला तत्व स्टैक में जोड़ें।
  • सरणी के तत्वों के माध्यम से पुनरावृति करें।
    • यदि स्टैक खाली है, तो वर्तमान तत्व को स्टैक में जोड़ें।
    • जबकि वर्तमान तत्व स्टैक के शीर्ष तत्व से बड़ा है।
      • शीर्ष तत्व को वर्तमान तत्व के रूप में अगले बड़े तत्व के साथ प्रिंट करें।
      • शीर्ष तत्व को पॉप करें।
    • तत्व को स्टैक में जोड़ें।
  • जबकि स्टैक खाली नहीं है।
    • तत्वों को अगले बड़े तत्व के रूप में -1 के साथ प्रिंट करें।

कार्यान्वयन

निम्नलिखित C++ में उपरोक्त एल्गोरिदम का कार्यान्वयन है:

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

void nextGreaterElements(int arr[], int n) { 
    stack<int> s; 
    s.push(arr[0]); 
    for (int i = 1; i < n; i++) { 
        if (s.empty()) { 
            s.push(arr[i]); 
            continue; 
        } 
        while (!s.empty() && s.top() < arr[i]) { 
            cout << s.top() << " -> " << arr[i] << endl; 
            s.pop(); 
        } 
        s.push(arr[i]); 
    } 
    while (!s.empty()) { 
        cout << s.top() << " -> " << -1 << endl; 
        s.pop(); 
    } 
} 

int main() { 
    int arr[] = { 1, 2, 3, 4, 5 }; 
    int n = 5; 
    nextGreaterElements(arr, n); 
    return 0; 
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।

1 -> 2 2 -> 3 3 -> 4 4 -> 5 5 -> -1

  1. - C++ में बदसूरत संख्या

    बदसूरत संख्याएं वे संख्याएं हैं जिनके अभाज्य गुणनखंड 2, 3 या 5 हैं। 1 से 15 तक, 11 बदसूरत संख्याएं हैं: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15। संख्याएं 7, 11, 13 बदसूरत नहीं हैं क्योंकि वे अभाज्य हैं। संख्या 14 बदसूरत नहीं है क्योंकि इसके अभाज्य गुणनखंड में 7 आएगा। तो मान लीजिए हम 10वीं बदसूरत संख्या

  1. - C++ में बहुमत तत्व

    7/2। हम ऐरे में x की घटनाओं को गिन सकते हैं, और यदि संख्या n/2 से अधिक है, तो उत्तर सत्य होगा, अन्यथा असत्य। उदाहरण (C++) #include <iostream> #include <stack> using namespace std; bool isMajorityElement(int arr[], int n, int x){ int freq = 0; for(int i = 0; i n/2); }

  1. - C++ में लेक्सिकोग्राफिकली नेक्स्ट पर्मुटेशन

    लेक्सिकोग्राफिकली नेक्स्ट पर्मुटेशन यहां हम देखेंगे कि C++ में स्ट्रिंग के लेक्सिकोग्राफिकली नेक्स्ट पर्मुटेशन को कैसे जनरेट करें। लेक्सिकोग्राफिकली नेक्स्ट पर्मुटेशन मूल रूप से बड़ा पर्मुटेशन है। उदाहरण के लिए, ACB का नेक्स्ट BAC होगा। कुछ मामलों में, लेक्सिकोग्राफिकली नेक्स्ट पर्मुटेशन मौजूद नहीं