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

তিনটি সর্টেড অ্যারে থেকে তিনটি সन्नিকট উপাদান খুঁজে বের করা C++-তে


মনে করুন আমাদের তিনটি সর্টেড অ্যারে A, B এবং C আছে, এবং A, B এবং C থেকে যথাক্রমে i, j এবং k উপাদান রয়েছে যাতে max(|A[i] – B[j]|, |B[j] – C[k]|, |C[k] – A[i]|) ন্যূনতম হয়। তাই যদি A = [1, 4, 10], B = [2, 15, 20], এবং C = [10, 12] হয়, তবে আউটপুট উপাদানগুলো হবে 10, 15, 10, যা যথাক্রমে A, B এবং C থেকে।

মনে করুন A, B এবং C-এর আকার যথাক্রমে p, q এবং r। এখন এই সমস্যাটি সমাধানের জন্য নিচের ধাপগুলো অনুসরণ করুন -

  • i := 0, j := 0 এবং k := 0
  • এখন i < p এবং j < q এবং k < r থাকতে যতক্ষণ না করে নিচের কাজগুলো করুন।
    • A[i], B[j] এবং C[k]-এর মিন এবং ম্যাক্স বের করুন
    • ডিফ := max(X, Y, Z) - min(A[i], B[j], C[k]) হিসাব করুন
    • যদি ফলাফল বর্তমান ফলাফলের চেয়ে কম হয়, তবে এটিকে নতুন ফলাফলে পরিবর্তন করুন
    • সর্বনিম্ন উপাদানযুক্ত অ্যারের পয়েন্টার বাড়ান।

উদাহরণ

#include <iostream>
using namespace std;

void getClosestElements(int A[], int B[], int C[], int p, int q, int r) {
    int diff = INT_MAX;
    int i_final = 0, j_final = 0, k_final = 0;
    int i = 0, j = 0, k = 0;
    while (i < p && j < q && k < r) {
        int min_element = min(A[i], min(B[j], C[k]));
        int max_element = max(A[i], max(B[j], C[k]));
        if (max_element - min_element < diff) {
            i_final = i, j_final = j, k_final = k;
            diff = max_element - min_element;
        }
        if (diff == 0)
            break;
        if (A[i] == min_element)
            i++;
        else if (B[j] == min_element)
            j++;
        else
            k++;
    }
    cout << A[i_final] << " " << B[j_final] << " " << C[k_final];
}

int main() {
    int A[] = {1, 4, 10};
    int B[] = {2, 15, 20};
    int C[] = {10, 12};
    int p = sizeof A / sizeof A[0];
    int q = sizeof B / sizeof B[0];
    int r = sizeof C / sizeof C[0];
    cout << "Closest elements are: ";
    getClosestElements(A, B, C, p, q, r);
}

আউটপুট

Closest elements are: 10 15 10

  1. সি++ প্রোগ্রাম: সর্টেড অ্যারেতে দেওয়া মান থেকে kটি নিকটতম উপাদান খুঁজে বের করা

  2. C++-এ অ্যারে উপাদানগুলির ফ্যাক্টোরিয়ালের GCD বের করা

  3. C#-এ তিনটি সর্টেড অ্যারেয়ের কমন এলিমেন্ট বের করা

  4. দুটি সর্টেড অ্যারে থেকে নিকটতম জোড়া বের করার জাভা প্রোগ্রাম