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

सी ++ में अगला छोटा तत्व

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

गिरफ्तारी =[1, 2, 3, 5, 4]

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

एल्गोरिदम

  • यादृच्छिक संख्याओं के साथ सरणी प्रारंभ करें

  • स्टैक को इनिशियलाइज़ करें।

  • स्टैक में पहला तत्व जोड़ें।

  • सरणी के तत्व के माध्यम से पुनरावृति करें।

    • यदि स्टैक खाली है, तो वर्तमान तत्व को स्टैक में जोड़ें।

    • जबकि वर्तमान तत्व स्टैक के शीर्ष तत्व से छोटा है।

      • शीर्ष तत्व को अगले छोटे तत्व के साथ वर्तमान तत्व के रूप में प्रिंट करें।

      • शीर्ष तत्व को पॉप करें।

    • तत्व को स्टैक में जोड़ें।

  • जबकि स्टैक खाली नहीं है।

    • अगले छोटे तत्व वाले तत्वों को -1 के रूप में प्रिंट करें।

कार्यान्वयन

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

#include <bits/stdc++.h>
using namespace std;
void nextSmallerElements(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[] = { 5, 4, 3, 2, 1 };
   int n = 5;
   nextSmallerElements(arr, n);
   return 0;
}

आउटपुट

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

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

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

    कुरूप संख्याएँ वे संख्याएँ हैं जिनके अभाज्य गुणनखंड 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

  1. सी ++ में लेक्सिकोग्राफिक रूप से अगला क्रमपरिवर्तन

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