কম্পিউটার টিউটোরিয়াল

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] শর্ত পূরণকারী ২টি ইন্ডেক্স পাওয়া যায়। তাই উত্তর ২।

অ্যালগরিদম

  • যদি সব উপাদান আলাদা হয়, তবে উত্তর সিম্পলি 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++-এ The Maze III সমস্যা সমাধান

  2. C++-এ দেওয়া স্টিক সেট থেকে সম্ভাব্য রেক্ট্যাঙ্গেল ও স্কোয়ারের সংখ্যা

  3. সি++-এ negative_binomial_distribution উদাহরণসহ (negative_binomial_distribution in C++ with Examples)

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