A[i], A[i+1], ..., A[j]-এর একটি সাবঅ্যারে বিবেচনা করুন যখন এটি এই শর্তগুলি পূরণ করে −
সুতরাং সাব্যারে অশান্ত হয় যদি তুলনা চিহ্নটি সাব্যারেতে প্রতিটি সন্নিহিত জোড়া উপাদানের মধ্যে উল্টে যায়। এখন A-এর সর্বাধিক আকারের অশান্ত সাবয়ারের দৈর্ঘ্য খুঁজুন। সুতরাং যদি ইনপুটটি [9,4,2,10,7,8,8,1,9] এর মত হয়, আউটপুট 5 হয়। কারণ A[1]> A[2] A[4]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
n :=অ্যারের আকার A
prevBig :=1, prevSmall :=1, currBig :=1, currSmall :=1 এবং ret :=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