एक उपसरणी पर विचार करें A[i], A[i+1], ..., A[j] of A को अशांत कहा जाता है जब वह इन शर्तों को पूरा करता है -
तो उपसरणी अशांत है यदि तुलना चिह्न उपसरणी में तत्वों की प्रत्येक आसन्न जोड़ी के बीच फ़्लिप करता है। अब ए के अधिकतम आकार के अशांत उप-सरणी की लंबाई पाएं। तो यदि इनपुट [9,4,2,10,7,8,8,1,9] जैसा है, तो आउटपुट 5 है। ऐसा इसलिए है क्योंकि ए [1]> ए[2] <ए[3]> ए[4] <ए[5]
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
n :=सरणी A का आकार
-
पिछलाबिग:=1, पिछलाछोटा:=1, कर्बिग:=1, कर्टस्मॉल:=1 और सेवानिवृत्त:=1
-
मैं के लिए 1 से n - 1 की सीमा में
-
वापसी रिट
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
#include <bits/stdc++.h> using namespace std; class Solution { public: int maxTurbulenceSize(vector<int>& A) { int n = A.size(); int prevBig = 1; int prevSmall = 1; int currBig = 1; int currSmall = 1; int ret = 1; for(int i = 1; i < n; i++){ if(A[i] > A[i - 1]){ currBig = 1 + prevSmall; } if(A[i] < A[i - 1]){ currSmall = 1 + prevBig; } ret = max({ret, currBig, currSmall}); prevSmall = currSmall; prevBig = currBig; currSmall = 1; currBig = 1; } return ret; } }; main(){ vector<int> v1 = {9,4,2,10,7,8,8,1,9}; Solution ob; cout << (ob.maxTurbulenceSize(v1)); }
इनपुट
[9,4,2,10,7,8,8,1,9]
आउटपुट
5