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

সি++-এ দিয়ে রেঞ্জে ন্যূনতম উপাদানের সংখ্যা গণনা

N আকারের একটি ইন্টিজার অ্যারে দেওয়া আছে। L এবং R ভেরিয়েবল ১ এবং N-এর মধ্যবর্তী একটি রেঞ্জ নির্ধারণ করে। লক্ষ্য হল L এবং R রেঞ্জে পড়া ন্যূনতম উপাদানগুলোর সংখ্যা বের করা (L>=1 এবং R<=N)।

রেঞ্জ L এবং R-এ পড়া উপাদানগুলোর মধ্যে ন্যূনতমটি বের করা হয়। আবার সেই রেঞ্জ ট্রাভার্স করে যেসব উপাদান ন্যূনতমের সমান, তাদের গণনা করা হয়।

উদাহরণ

ইনপুট: arr[] = { 1,2,3,0,3,2,0,1 }, N=8, L=2, R=5

আউটপুট: রেঞ্জে ন্যূনতম উপাদানের সংখ্যা: ১

ব্যাখ্যা: L(1) থেকে R(5) রেঞ্জে arr[1] থেকে arr[4]: {2,3,0,3}। ন্যূনতম ০। ০-এর সংখ্যা ১।

ইনপুট: arr[] = { 1,2,3,0,3,2,0,1 }, N=8, L=3, R=8

আউটপুট: রেঞ্জে ন্যূনতম উপাদানের সংখ্যা: ২

ব্যাখ্যা: L(3) থেকে R(8) রেঞ্জে arr[2] থেকে arr[7]: {3,0,3,2,0,1}। ন্যূনতম ০। ০-এর সংখ্যা ২।

অ্যাপ্রোচ

  • ইন্টিজার অ্যারে arr[] নেওয়া হয়।
  • L, R রেঞ্জ ভেরিয়েবল। count রেঞ্জে ন্যূনতমের সংখ্যা।
  • countSmallest(int arr[], int n, int l, int r) ফাংশন অ্যারে, দৈর্ঘ্য, L, R গ্রহণ করে রেঞ্জে ন্যূনতমের গণনা রিটার্ন করে।
  • smallest = arr[l], count=0।
  • যদি l<0 এবং r>=n হলে ০ রিটার্ন (অবৈধ রেঞ্জ)।
  • for লুপে i=l-1 থেকে r-1 পর্যন্ত: smallest আপডেট করা হয়।
  • আবার for লুপে i=l-1 থেকে r-1: arr[i]==smallest হলে count++।

উদাহরণ কোড

#include <bits/stdc++.h>
using namespace std;

int countSmallest(int arr[], int n, int l, int r) {
    int smallest = arr[l];
    int count = 0;
    if (l < 0 && r >= n) return 0;
    for (int i = l-1; i < r; i++) {
        if (arr[i] <= smallest) smallest = arr[i];
    }
    for (int i = l-1; i < r; i++) {
        if (arr[i] == smallest) ++count;
    }
    return count;
}

int main() {
    int arr[] = { 3,2,1,1,2,3 };
    int n = 6;
    int L = 1, R = 5;
    int count = countSmallest(arr, n, L, R);
    cout << endl << "Count of number of smallest in given range:" << count;
    L = 3, R = 4;
    count = countSmallest(arr, n, L, R);
    cout << endl << "Count of number of smallest in given range:" << count;
    return 0;
}

আউটপুট

Count of number of smallest in given range: 2
Count of number of smallest in given range: 2
  1. C++-এ অ্যারেতে দুটি দেওয়া উপাদানের মধ্যস্থ উপাদান গণনা

  2. C++-এ নির্দিষ্ট রেঞ্জে ফ্যাক্টোরিয়াল সংখ্যা গণনা

  3. C++-এ নাইস সাবঅ্যারে গণনা

  4. C++-এ অ্যারেতে জোড় ও বিজোড় উপাদান গণনা (Count Even and Odd Elements in Array)