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

सी ++ में इनपुट के समान क्रम में अगला बड़ा तत्व

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

गिरफ्तारी =[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;
   int result[n];
   for (int i = n - 1; i >= 0; i--) {
      while (!s.empty() && s.top() <= arr[i]) {
         s.pop();
      }
      if (s.empty()) {
         result[i] = -1;
      }else {
         result[i] = s.top();
      }
      s.push(arr[i]);
   }
   for (int i = 0; i < n; i++) {
      cout << arr[i] << " -> " << result[i] << endl;
   }
}
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. सी ++ में न्यूनतम ढेर में अधिकतम तत्व

    समस्या कथन न्यूनतम ढेर को देखते हुए उसमें अधिकतम तत्व खोजें। उदाहरण यदि इनपुट हीप है - तब अधिकतम तत्व 55 . है एल्गोरिदम न्यूनतम हीप में पैरेंट नोड अपने बच्चों से छोटा होगा। इसलिए हम यह निष्कर्ष निकाल सकते हैं कि एक गैर-पत्ती नोड अधिकतम नहीं हो सकता। लीफ नोड्स में अधिकतम तत्व खोजें उदाहरण आइए

  1. C++ में एक ही क्रम में सभी तत्वों वाले सबसे छोटे उप-सरणी का पता लगाएं

    मान लीजिए कि हमारे पास m और n आकार के दो सरणियाँ हैं, कार्य पहली सरणी में न्यूनतम लंबाई उपसरणी खोजना है, जिसमें सभी तत्व शामिल हैं यदि दूसरा सरणी है। दूसरी सरणी में तत्व गैर-सन्निहित में बड़े सरणी में मौजूद हो सकता है लेकिन क्रम समान होना चाहिए। इसलिए यदि दो सरणियाँ A =[2, 2, 4, 5, 8, 9], और B =[2,

  1. सी ++ में सरणी में प्रत्येक तत्व के लिए निकटतम अधिक मूल्य खोजें

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