मान लीजिए हमारे पास एक ऐरे A है। और हमें लंबाई > 1 के सख्ती से घटते सबएरे की कुल संख्या ढूंढनी है। तो यदि A = [100, 3, 1, 15]। तो घटते क्रम हैं [100, 3], [100, 3, 1], [15] तो आउटपुट 3 होगा। क्योंकि तीन सबएरे मिले हैं।
विचार लंबाई l के सबएरे को ढूंढना और परिणाम में l(l - 1)/2 जोड़ना है।
उदाहरण
#includeusing 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