কম্পিউটার

প্রদত্ত অ্যারের স্থানীয় এক্সট্রিমা গণনা করতে C++ কোড


ধরুন আমাদের n উপাদান সহ একটি অ্যারে A আছে। এই অ্যারের কিছু উপাদান A[i] কে স্থানীয় সর্বনিম্ন বলা হয় যদি এবং শুধুমাত্র যদি এটি তার উভয় প্রতিবেশীর থেকে কঠোরভাবে কম হয়। এছাড়াও যদি এটি তার প্রতিবেশীদের থেকে কঠোরভাবে বড় হয় তবে এটি স্থানীয় সর্বোচ্চ হবে। A[0] এবং A[n-1] এর জন্য যেহেতু শুধুমাত্র একজন প্রতিবেশী আছে তারা ম্যাক্সিমা বা মিনিমা নয়। আমাদের প্রদত্ত অ্যারেতে স্থানীয় এক্সট্রিমার সংখ্যা খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুটটি A =[1, 5, 2, 5] এর মত হয়, তাহলে আউটপুট হবে 2, কারণ A[1]-এ 5 স্থানীয় ম্যাক্সিমা এবং A[2]-এ 2 হল স্থানীয় মিনিমা।

পদক্ষেপ

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

sum := 0
n := size of A
for initialize i := 1, when i < n - 1, update (increase i by 1), do:
   if (A[i] < A[i - 1] and A[i] < A[i + 1]) or (A[i] > A[i + 1] and A[i] > A[i - 1]), then:
      (increase sum by 1)
   return sum

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A){
   int sum = 0;
   int n = A.size();
   for (int i = 1; i < n - 1; i++)
      if ((A[i] < A[i - 1] && A[i] < A[i + 1]) || (A[i] > A[i + 1] && A[i] > A[i - 1]))
         sum++;
   return sum;
}
int main(){
   vector<int> A = { 1, 5, 2, 5 };
   cout << solve(A) << endl;
}

ইনপুট

{ 1, 5, 2, 5 }

আউটপুট

2

  1. C++ অ্যারেতে দুটি প্রদত্ত উপাদানের মধ্যে উপাদানের সংখ্যা গণনা করুন

  2. C++ এ একটি অ্যারেতে স্বতন্ত্র উপাদান গণনা করুন

  3. C++ এ একটি প্রদত্ত পরিসরে ফ্যাক্টরিয়াল সংখ্যা গণনা করুন

  4. C++ এ সাজানো বাইনারি অ্যারেতে 1 এর সংখ্যা গণনা করুন