কম্পিউটার

C++ এ a[i+1]> a[i] দিয়ে উপাদানগুলিকে সর্বাধিক করা


সমস্যা বিবৃতি

N পূর্ণসংখ্যাগুলির একটি অ্যারে দেওয়া, অ্যারের উপাদানগুলিকে পুনরায় সাজান যাতে পরবর্তী অ্যারের উপাদানটি আগের উপাদানের চেয়ে বড় হয় arr[i+1]> arr[i>

উদাহরণ

যদি ইনপুট অ্যারে হয় {300, 400, 400, 300} তাহলে পুনরায় সাজানো অ্যারে হবে −

{300, 400, 300, 400}। এই সমাধানে আমরা arr[i+1]> arr[i] শর্ত সহ 2টি সূচক পাই। তাই উত্তর হল 2.

অ্যালগরিদম

  • যদি সমস্ত উপাদান স্বতন্ত্র হয়, তাহলে উত্তরটি হল n-1 যেখানে n হল অ্যারের উপাদানগুলির সংখ্যা
  • যদি পুনরাবৃত্ত উপাদান থাকে, তাহলে উত্তর হবে n – maxFrequency

উদাহরণ

আসুন এখন একটি উদাহরণ দেখি -

#include <bits/stdc++.h>
#define MAX 1000
using namespace std;
int getMaxIndices(int *arr, int n) {
   int count[MAX] = {0};
   for (int i = 0; i < n; ++i) {
      count[arr[i]]++;
   }
   int maxFrequency = 0;
   for (int i = 0; i < n; ++i) {
      if (count[arr[i]] > maxFrequency) {
         maxFrequency = count[arr[i]];
      }
   }
   return n - maxFrequency;
}
int main() {
   int arr[] = {300, 400, 300, 400}; int n = sizeof(arr) / sizeof(arr[0]);
   cout << "Answer = " << getMaxIndices(arr, n) << endl;
   return 0;
}

আউটপুট

Answer = 2

  1. C++ এ ধাঁধা III

  2. C++ এ উপাদানগুলির প্রদত্ত সেট সহ আয়তক্ষেত্র এবং বর্গক্ষেত্রের সম্ভাব্য সংখ্যা

  3. উদাহরণ সহ C++-এ ঋণাত্মক_দ্বিপদ_বণ্টন

  4. C++ এ প্রদত্ত পার্থক্যের সাথে একটি জোড়া খুঁজুন