কম্পিউটার

C++ এ কঠোরভাবে হ্রাসকারী সাবাররেগুলির গণনা খুঁজুন


ধরুন আমাদের একটি অ্যারে আছে। এবং আমাদেরকে দৈর্ঘ্যের কঠোরভাবে হ্রাস করা সাবয়ারের মোট সংখ্যা খুঁজে বের করতে হবে> 1। তাই যদি A =[100, 3, 1, 15]। তাই ক্রমহ্রাসমান ক্রম হল [100, 3], [100, 3, 1], [15] সুতরাং আউটপুট হবে 3. যেহেতু তিনটি সাব্যারে পাওয়া যায়৷

ধারণাটি হল লেন 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

  1. C++ এ বর্ণানুক্রমিক সাবস্ট্রিংগুলির গণনা খুঁজুন

  2. C++ এ সর্বাধিক সংলগ্ন জোড় সংখ্যার গণনা খুঁজুন

  3. একটি সংখ্যায় সংখ্যার গণনা খুঁজুন যা সংখ্যাটিকে C++ এ ভাগ করে

  4. C++ এ রোটেটেড সর্টেড অ্যারেতে রোটেশন কাউন্ট খুঁজুন