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

सी++ में ऐरे में सबसे लंबा पर्वत

किसी भी (सन्निहित) सबअरे बी (ए के) पर विचार करें जिसे पर्वत कहा जाता है यदि निम्नलिखित गुण हैं -

  • बी का आकार>=3
  • कुछ 0 B[i+1]> । ..> बी[बी.लंबाई - 1]

मान लीजिए कि हमारे पास पूर्णांकों की एक सरणी A है; हमें सबसे लंबे पर्वत की लंबाई ज्ञात करनी है। पहाड़ न होने पर हमें 0 वापस करना होगा। तो अगर इनपुट [2,1,4,7,3,2,5] जैसा है, तो परिणाम 5 होगा। तो सबसे बड़ा पर्वत [1,4,7,3,2] होगा, जिसकी लंबाई है 5.

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

  • ret :=0, n :=array का आकार a
  • i :=0 से n – 1, i को j + 1 से बढ़ाएँ
    • j :=i
    • नीचे:=झूठा, ऊपर:=झूठा
    • जबकि j + 1 a[j]
      • ऊपर :=सत्य और j को 1 से बढ़ाएं
    • जबकि ऊपर सत्य है और j + 1 a[j]
      • नीचे :=सच है और j को 1 से बढ़ाएं
    • यदि ऊपर और नीचे दोनों सत्य हैं, तो रिट सेट करें:=अधिकतम j - i + 1 और रिट, j को 1 से घटाएं
  • रिटर्न रिट।

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

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int longestMountain(vector<int>& a) {
      int ret = 0;
      int n = a.size();
      int j;
      for(int i = 0; i < n; i = j + 1){
         j = i;
         bool down = false;
         bool up = false;
         while(j + 1 < n && a[j + 1] > a[j]) {
            up = true;
            j++;
         }
         while(up && j + 1 < n && a[j + 1] < a[j]){
            down = true;
            j++;
         }
         if(up && down){
            ret = max(j - i + 1, ret);
            j--;
         }
      }
      return ret;
   }
};
main(){
   vector<int> v = {2,1,4,7,3,2,5};
   Solution ob;
   cout << (ob.longestMountain(v));
}

इनपुट

[2,1,4,7,3,2,5]

आउटपुट

5

  1. C++ में सबसे लंबा अशांत सबरे

    एक उपसरणी पर विचार करें A[i], A[i+1], ..., A[j] of A को अशांत कहा जाता है जब वह इन शर्तों को पूरा करता है - i <=k A[k+1] के लिए जब k विषम हो, और A[k]

  1. सी ++ स्ट्रिंग्स की सरणी

    इस खंड में हम देखेंगे कि C++ में स्ट्रिंग्स की एक सरणी को कैसे परिभाषित किया जाए। जैसा कि हम जानते हैं कि सी में कोई तार नहीं था। हमें कैरेक्टर ऐरे का उपयोग करके स्ट्रिंग्स बनाना है। इसलिए स्ट्रिंग्स की कुछ सरणी बनाने के लिए, हमें वर्णों की एक 2-आयामी सरणी बनानी होगी। प्रत्येक पंक्तियाँ उस मैट्रिक्स

  1. सी++ में छँटाई

    इस खंड में हम देखेंगे कि C++ में सॉर्टिंग एल्गोरिथम कैसे किया जाता है। एक क्रमबद्ध सरणी एक सरणी है जिसमें प्रत्येक तत्व को किसी क्रम में क्रमबद्ध किया जाता है जैसे संख्यात्मक, वर्णानुक्रम आदि। संख्यात्मक सरणी को सॉर्ट करने के लिए कई एल्गोरिदम हैं जैसे कि बबलसॉर्ट, इंसर्शन सॉर्ट, सेलेक्शन सॉर्ट, मर्ज