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

C++ में एक सूची अंक से एक ट्रिपल अंक [i] <अंक [के] <अंक [जे] खोजने के लिए कार्यक्रम

मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, हमें यह जांचना होगा कि क्या त्रिगुण (i, j, k) हैं जैसे कि i

इसलिए, यदि इनपुट संख्या =[2, 12, 1, 4, 4] की तरह है, तो आउटपुट सही होगा, क्योंकि [2, 12, 4] मानदंड से मेल खाता है क्योंकि 2 <4 <12.

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • n :=अंकों का आकार

  • आकार n के बाईं ओर एक सरणी परिभाषित करें

  • बाएं [0] :=अंक[0]

  • इनिशियलाइज़ करने के लिए मैं :=1, जब i

    • बाएँ [i] :=न्यूनतम अंक [i] और बाएँ [i - 1]

  • एक स्टैक सेंट परिभाषित करें

  • इनिशियलाइज़ करने के लिए i :=n-1, जब i>=1, अपडेट करें (i से 1 घटाएं), −

    करें
    • एक्स:=बाएं [i - 1]

    • जबकि सेंट खाली नहीं है और सेंट के ऊपर <=x, करें -

      • सेंट से पॉप

    • यदि सेंट खाली नहीं है और x सेंट के ऊपर है, तो -

      • सही लौटें

    • nums[i] सेंट में पुश करें

  • झूठी वापसी

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   bool solve(vector<int>& nums) {
      int n = nums.size();
      vector<int> left(n);
      left[0] = nums[0];
      for (int i = 1; i < n; i++) {
         left[i] = min(nums[i], left[i - 1]);
      }
      stack<int> st;
      for (int i = n - 1; i >= 1; i--) {
         int x = left[i - 1];
         while (!st.empty() && st.top() <= x)
            st.pop();
         if (!st.empty() && x < nums[i] && nums[i] > st.top())
            return true;
         st.push(nums[i]);
      }
      return false;
   }
};
bool solve(vector<int>& nums) {
   return (new Solution())->solve(nums);
}
int main(){
   vector<int> v = {2, 12, 1, 4, 4};
   cout << solve(v);
}

इनपुट

{2, 12, 1, 4, 4}

आउटपुट

1

  1. सी++ में डबल लिंक्ड लिस्ट का आकार खोजने का कार्यक्रम

    इस समस्या में हमें एक डबल लिंक्ड लिस्ट दी जाती है। हमारा काम C++ में डबली लिंक्ड लिस्ट का आकार खोजने के लिए एक प्रोग्राम बनाना है। डबल लिंक्ड लिस्ट एक विशेष प्रकार की लिंक्ड लिस्ट है जिसमें सिंगल लिंक्ड लिस्ट की तुलना में आगे और पीछे दोनों तरह से नेविगेशन संभव है। डबल लिंक्ड सूचियों की अवधारणा को

  1. पायथन में संख्याओं की सूची से अंकगणितीय अनुक्रमों की संख्या खोजने का कार्यक्रम?

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, हमें लंबाई ≥ 3 के अंकगणितीय अनुक्रमों की संख्या का पता लगाना है। जैसा कि हम जानते हैं कि अंकगणितीय अनुक्रम संख्याओं की एक सूची है जहां एक संख्या और अगली के बीच का अंतर समान होता है। इसलिए, यदि इनपुट अंकों की तरह है =[6, 12, 13, 8,

  1. सूची से एन सबसे बड़े तत्वों को खोजने के लिए पायथन कार्यक्रम

    एक पूर्णांक सूची को देखते हुए, हमारा कार्य सूची में N सबसे बड़े तत्वों को खोजना है। उदाहरण Input : [40, 5, 10, 20, 9] N = 2 Output: [40, 20] एल्गोरिदम Step1: Input an integer list and the number of largest number. Step2: First traverse the list up to N times. Step3: Each traverse find the largest va