मान लीजिए कि हमारे पास एक एरे ए है। और हमें लंबाई> 1 के सख्ती से घटते सबएरे की कुल संख्या का पता लगाना है। तो अगर ए =[100, 3, 1, 15]। तो घटते क्रम हैं [100, 3], [100, 3, 1], [15] तो आउटपुट 3 होगा। जैसे ही तीन सबरे मिलते हैं।
विचार len l का उप-सरणी ढूँढना है और परिणाम में l(l – 1)/2 जोड़ता है।
उदाहरण
#include<iostream>
using namespace std;
int countSubarrays(int array[], int n) {
int count = 0;
int l = 1;
for (int i = 0; i < n - 1; ++i) {
if (array[i + 1] < array[i])
l++;
else {
count += (((l - 1) * l) / 2);
l = 1;
}
}
if (l > 1)
count += (((l - 1) * l) / 2);
return count;
}
int main() {
int A[] = { 100, 3, 1, 13, 8};
int n = sizeof(A) / sizeof(A[0]);
cout << "Number of decreasing subarrys: " << countSubarrays(A, n);
} आउटपुट
Number of decreasing subarrys: 4