इस ट्यूटोरियल में, हम दिए गए शर्त को पूरा करने वाले उप-सरणी के अधिकतम आकार को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे।
इसके लिए हमें पूर्णांकों की एक सरणी प्रदान की जाएगी। हमारा काम उस सरणी के अधिकतम लंबाई सबसेट को ढूंढना है जो एआर [के]> एआर [के + 1] में से किसी एक को संतुष्ट करता है जब के आइसोड और एआर [के] <एआर [के + 1] जब के सम है, एआर [के]> arr[k + 1] जब k सम हो और arr[k]उदाहरण
#include<bits/stdc++.h>
using namespace std;
//comparing values of a and b
int cmp(int a, int b) {
return (a > b) - (a < b);
}
//returning longest substring
int maxSubarraySize(int arr[], int n) {
int ans = 1;
int anchor = 0;
for (int i = 1; i < n; i++) {
int c = cmp(arr[i - 1], arr[i]);
if (c == 0)
anchor = i;
else if (i == n - 1 || c * cmp(arr[i], arr[i +
1]) != -1) {
ans = max(ans, i - anchor + 1);
anchor = i;
}
}
return ans;
}
int main() {
int arr[] = {9, 4, 2, 10, 7, 8, 8, 1, 9};
int n = sizeof(arr) / sizeof(arr[0]);
cout << maxSubarraySize(arr, n);
}
आउटपुट
5