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

C++-এ অ্যারেতে (arr[i] - i) - (arr[j] - j) এর সর্বোচ্চ মান

সমস্যা বিবরণ

একটি অ্যারে arr[] দেওয়া আছে, (arr[i] - i) - (arr[j] - j)-এর সর্বোচ্চ মান বের করুন যেখানে i, j ভিন্ন। i এবং j 0 থেকে n-1 পর্যন্ত ভেরিয়েট করে এবং n হল ইনপুট অ্যারে arr[]-এর আকার।

যদি ইনপুট অ্যারে হয় {7, 5, 10, 2, 3} তবে আমরা ৯ সর্বোচ্চ মান পেতে পারি নিচের মতো:

(element 10 - index 2) - (element 2 - index 3) 
(10 - 2) - (2 - 3) = 8 - (-1) = 9

অ্যালগরিদম

1. পুরো অ্যারেতে (arr[i] - i)-এর সর্বোচ্চ মান বের করুন। 
2. পুরো অ্যারেতে (arr[i] - i)-এর ন্যূনতম মান বের করুন। 
3. উপরের দুটি মানের পার্থক্য রিটার্ন করুন।

উদাহরণ

#include <bits/stdc++.h> 
using namespace std; 
int getMaxDiff(int* arr, int n) { 
    if (n < 2) { 
        cout << "Invalid input" << endl; 
        exit(1); 
    } 
    int minVal = INT_MAX; 
    int maxVal = INT_MIN; 
    for (int i = 0; i < n; ++i) { 
        int result = arr[i] - i; 
        if (result > maxVal) { 
            cout << "Max = " << arr[i] << " - " << i << endl; 
            maxVal = result; 
        } 
        if (result < minVal) { 
            cout << "Min = " << arr[i] << " - " << i << endl; 
            minVal = result; 
        } 
    } 
    return (maxVal - minVal); 
} 
int main() { 
    int arr[] = {7, 5, 10, 2, 3}; 
    int n = sizeof(arr) / sizeof(arr[0]); 
    cout << "Maximum value = " << getMaxDiff(arr, n) << endl; 
    return 0; 
}

আউটপুট

Maximum value = Max = 7 - 0 Min = 7 - 0 Min = 5 - 1 Max = 10 - 2 Min = 2 - 3 9
  1. C++-এ K বার 네가শন দিয়ে অ্যারে যোগফল সর্বাধিক করা

  2. C++-এ দেওয়া সংখ্যা পর্যন্ত অ্যারে উপাদান সর্বাধিক করা

  3. সি++ প্রোগ্রাম: অ্যারেতে সর্বনিম্ন মানের ফ্রিকোয়েন্সি (Frequency) নির্ণয়

  4. সি++ প্রোগ্রাম: সর্টেড অ্যারেতে জ্যামিতিক ধারা (Geometric Progression) গঠনকারী সব ট্রিপলেট (Triplet) খুঁজে বের করা