Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để tìm kích thước tối đa của mảng con thỏa mãn điều kiện đã cho.
Đối với điều này, chúng tôi sẽ được cung cấp với một mảng các số nguyên. Nhiệm vụ của chúng ta là tìm tập con có độ dài tối đa của mảng đó thỏa mãn một trong hai arr [k]> arr [k + 1] khi k isodd và arr [k] Ví dụ
#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);
}
Đầu ra
5