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

C++-এ দুটি অ্যারে-এর কম্প্যাটিবিলিটি ডিফারেন্স বের করা

দুটি বন্ধু বিবেচনা করুন যারা তাদের বন্ধন পরীক্ষা করতে চান। তাই তারা চেক করবেন, তারা কতটুকু কম্প্যাটিবল। 1 থেকে n পর্যন্ত সংখ্যা দেওয়া আছে। তাদেরকে সংখ্যাগুলো র‍্যাঙ্ক করার বলা হয়েছে। তাদের কম্প্যাটিবিলিটি ডিফারেন্স বের করতে হবে। কম্প্যাটিবিলিটি ডিফারেন্স মূলত একই মুভির সাপেক্ষ র‍্যাঙ্কিং-এ মিসম্যাচের সংখ্যা। সুতরাং যদি A = [3, 1, 2, 4, 5], এবং B = [3, 2, 4, 1, 5], তবে আউটপুট হবে ২। কম্প্যাটিবিলিটি ডিফারেন্স ২, কারণ প্রথমটি মুভি ১ কে ২ এবং ৪-এর আগে র‍্যাঙ্ক করেছে কিন্তু অন্যটি পরে র‍্যাঙ্ক করেছে।

এটি সমাধান করতে, আমরা উভয় অ্যারে ট্রভার্স করব, যখন কারেন্ট উপাদানগুলো একই হবে, তবে কিছু করব না। তারপর A এবং B-এর নেক্সট পজিশন খুঁজে বের করুন, পজিশন j হোক, একে একে B[j]-কে B[i]-তে সরিয়ে আনুন।

উদাহরণ

#include <iostream> 
using namespace std; 
int getArrayDiff(int A[], int B[], int n) { 
    int result = 0; 
    for (int i = 0; i < n; i++) { 
        if (A[i] != B[i]) { 
            int j = i + 1; 
            while (A[i] != B[j]) 
                j++; 
            while (j != i) { 
                swap(B[j], B[j - 1]); 
                j--; 
                result++; 
            } 
        } 
    } 
    return result; 
} 
int main() { 
    int A[] = {3, 1, 2, 4, 5}; 
    int B[] = {3, 2, 4, 1, 5}; 
    int n = sizeof(A) / sizeof(A[0]); 
    cout << "Compatibility difference: " << getArrayDiff(A, B, n); 
}

আউটপুট

Compatibility difference: 2
  1. সি++ কোড: কনসার্ট ডুরেশন পার্থক্য ন্যূনতম করুন

  2. C++ দিয়ে দুটি অ্যারের ওভারল্যাপিং সম (Overlapping Sum) বের করা

  3. C++-এ দুটি আনসোর্টেড অ্যারেয়ের ইউনিয়ন এবং ইন্টারসেকশন বের করা

  4. C++-এ ভালো নোডগুলোর মধ্যে সবচেয়ে ছোট দূরত্ব খুঁজে বের করা