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

C++-এ আকার k-এর সাবসিকোয়েন্সের সর্বোচ্চ গুণফল (Maximum product of subsequence of size k)

এই সমস্যায় একটি পূর্ণসংখ্যার অ্যারে arr[] এবং একটি সংখ্যা k দেওয়া আছে। আমাদের C++-এ আকার k-এর সাবসিকোয়েন্সের সর্বোচ্চ গুণফল বের করার প্রোগ্রাম লিখতে হবে।

সমস্যার বিবরণ - ১ ≤ k ≤ n আকারের সাবসিকোয়েন্স খুঁজে বের করতে হবে যেটির উপাদানগুলোর গুণফল সর্বোচ্চ।

উদাহরণ:

ইনপুট

arr[] = {1, 5, 6, -2, 0, 4}, k = 3

আউটপুট

120

ব্যাখ্যা

আকার ৩-এর সাবসিকোয়েন্স (5, 6, 4) এর গুণফল ১২০।

সমাধানের পদ্ধতি

অ্যারে সর্ট করুন। k-এর চিহ্ন ও অ্যারের উপাদান অনুযায়ী কেস ভাগ করুন:

  • k জোড়: সবচেয়ে বড় k উপাদান নিন (শূন্য বাদে), ঋণাত্মক জোড়ও বিবেচনা করুন
  • k বিজোড়: আরও জটিল, সর্বোচ্চ উপাদানের চিহ্ন অনুযায়ী উপ-কেস: ধনাত্মক হলে মিশ্র অ্যারে, শূন্য হলে ফলাফল ০, ঋণাত্মক হলে ছোট মাঙ্গনিটিউডের উপাদান নিন

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int findMaxSubArrayProduct(int arr[], int n, int k) {
    sort(arr, arr + n);
    int maxProd = 1;
    int i = 0, j = 0;
    int maxprod, minprod;
    if (arr[n - 1] == 0 && (k % 2 == 1))
        return 0;
    if (arr[n - 1] <= 0 && (k % 2 == 1)) {
        for (i = n - 1; i >= n - k; i--)
            maxProd *= arr[i];
        return maxProd;
    }
    i = 0; j = n - 1;
    if (k % 2 == 1) {
        maxProd *= arr[j];
        j--; k--;
    }
    k = k/2;
    int it = 0;
    while(it < k){
        minprod = arr[i] * arr[i + 1];
        maxprod = arr[j] * arr[j - 1];
        if (minprod > maxprod) {
            maxProd *= minprod;
            i += 2;
        } else {
            maxProd *= maxprod;
            j -= 2;
        }
        it++;
    }
    return maxProd;
}
int main() {
    int arr[] = { 1, 5, 6, -2, 0, 4 };
    int n = sizeof(arr) / sizeof(arr[0]);
    int k = 3;
    cout<<"The maximum product of subsequence of size "<

আউটপুট

The maximum product of subsequence of size 3 is 120
  1. C++-এ অ্যারেতে সর্বোচ্চ গুণফল ক্যাড্রাপল (সাবসিকোয়েন্স আকার ৪) (Maximum product quadruple (sub-sequence of size 4) in array)

  2. C++-এ আকার k-এর সাবসিকোয়েন্সের সর্বোচ্চ গুণফল (Maximum product of subsequence of size k)

  3. C++-এ তিনটি সংখ্যার সর্বোচ্চ গুণফল (Maximum Product of Three Numbers)

  4. C++-এ শব্দ দৈর্ঘ্যের সর্বোচ্চ গুণফল