एक उपसरणी पर विचार करें 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