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

দ্বিতীয় অ্যারের সব উপাদান একই ক্রমে থাকা ন্যূনতম সাবঅ্যারে (C++)

দুটি অ্যারে A (সাইজ m) এবং B (সাইজ n) দেওয়া আছে। A-র ন্যূনতম দৈর্ঘ্যের সাবঅ্যারে খুঁজে বের করতে হবে যেটিতে B-এর সব উপাদান একই ক্রমে থাকে (কন্টিগুয়াস হতে হবena)। উদাহরণ: A=[2,2,4,5,8,9], B=[2,5,9] -> সাবঅ্যারে [2,4,5,8,9] দৈর্ঘ্য ৫।

উদাহরণ

#include <iostream>
#include <climits>
using namespace std;

int lengthMinSubarray(int A[], int n, int B[], int m) {
    int res = INT_MAX;
    for (int i = 0; i <= n - m; i++) {
        if (A[i] == B[0]) {
            int j = 0, idx = i;
            for (; idx < n; idx++) {
                if (A[idx] == B[j]) j++;
                if (j == m) break;
            }
            if (j == m) res = min(res, idx - i + 1);
        }
    }
    return res;
}

int main() {
    int A[] = {5,6,5,2,7,5,6,7,5,5,7};
    int B[] = {5,5,7};
    int n = sizeof(A)/sizeof(A[0]);
    int m = sizeof(B)/sizeof(B[0]);
    cout << "Minimum length of subarray: " << lengthMinSubarray(A, n, B, m);
    return 0;
}

আউটপুট

Minimum length of subarray: 3
  1. C++-এ Nটি রেঞ্জ থেকে সব উপাদান কভার করা এমন একটি রেঞ্জ খুঁজে বের করা

  2. সি++ প্রোগ্রাম: X!-তে কমপক্ষে Yটি ট্রেইলিং জিরো থাকা সর্বনিম্ন X নির্ণয়

  3. C++ ব্যবহার করে অ্যারেতে এমন এলিমেন্ট বের করা যেটি সব এলিমেন্টকে ভাগ করে দেয়

  4. C++-এ অ্যারের সব এলিমেন্ট একই করার জন্য ন্যূনতম ডিলিট অপারেশন