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

C-তে অ্যারেতে একই উপাদানের প্রথম ও শেষ ইনডেক্সের মধ্যে সর্বোচ্চ পার্থক্য

একটি পূর্ণসংখ্যার অ্যারে (সাইজ N) দেওয়া আছে। যেই উপাদানটি একাধিকবার রয়েছে, তার প্রথম ও শেষ ইনডেক্সের পার্থক্য বের করতে হবে। এমন সব উপাদানের মধ্যে সর্বোচ্চ পার্থক্য খুঁজে বের করা লক্ষ্য।

উদাহরণ

ইনপুট: Arr[] = { 2, 1, 3, 1, 3, 2, 5, 5 }

আউটপুট: সর্বোচ্চ পার্থক্য - 5

ব্যাখ্যা:

(2,2): ইনডেক্স ০ এবং ৫ → পার্থক্য ৫
(1,1): ইনডেক্স ১ এবং ৩ → পার্থক্য ২
(3,3): ইনডেক্স ২ এবং ৪ → পার্থক্য ২
(5,5): ইনডেক্স ৬ এবং ৭ → পার্থক্য ১
সর্বোচ্চ = ৫

ইনপুট: Arr[] = { 2, 2, 3, 4, 8, 3, 4, 4, 8, 7 }

আউটপুট: ৪

প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • পুনরাবৃত্তি সংখ্যা ধারণকারী অ্যারে Arr[]।
  • maxDifference(int Arr[], int n) ফাংশনটি সর্বোচ্চ পার্থক্য হিসাব করে।
  • maxD = 0 দিয়ে ইনিশিয়ালাইজ।
  • দুটি নেস্টেড লুপ: বাইরের লুপ i=0 থেকে n-2, ভিতরের j=i+1 থেকে n-1।
  • যদি arr[i] == arr[j] এবং (j-i) > maxD হয়, তবে maxD = j-i।
  • শেষে maxD রিটার্ন।

C প্রোগ্রাম উদাহরণ

#include <stdio.h>

int maxDifference(int arr[], int n) {
    int maxD = 0;
    for (int i = 0; i < n - 1; i++)
        for (int j = i + 1; j < n; j++)
            if (arr[i] == arr[j] && (j - i) > maxD)
                maxD = j - i;
    return maxD;
}

int main() {
    int Arr[] = {1, 4, 1, 3, 3, 5, 4, 5, 2};
    int N = sizeof(Arr) / sizeof(Arr[0]);
    printf("সর্বোচ্চ পার্থক্য: %d", maxDifference(Arr, N));
    return 0;
}

আউটপুট

সর্বোচ্চ পার্থক্য: 5
  1. C++-এ সোর্ট করা এবং রোটেট করা অ্যারেতে সর্বোচ্চ উপাদান

  2. C++-এ std::vector এবং std::array-এর পার্থক্য

  3. ArrayBlockingQueue এবং ArrayDeque-এর পার্থক্য

  4. পাইথনে সর্টেড অ্যারেতে এলিমেন্টের প্রথম এবং শেষ পজিশন খুঁজে বের করা