কম্পিউটার

C++ এ একটি সাবয়ারেতে "সর্বোচ্চ + মিনিট" এর সর্বনিম্ন মান


সমস্যা বিবৃতি

n ধনাত্মক উপাদানগুলির একটি বিন্যাস দেওয়া হলে আমাদের একটি সাবঅ্যারেতে সর্বাধিক এবং সর্বনিম্ন উপাদানগুলির সর্বনিম্ন সম্ভাব্য যোগফল খুঁজে বের করতে হবে যে সাবয়ারের আকার 2 এর সমান হওয়া উচিত৷

উদাহরণ

যদি arr[] ={10, 5, 15, 7, 2, 1, 3} হয় তাহলে আমরা যখন "2 + 1" যোগ করি তখন "max + min" এর যোগফল 3 হয়।

অ্যালগরিদম

  • একটি সাব্যারেতে কোনো উপাদান যোগ করলে সর্বোচ্চ এবং সর্বনিম্ন যোগফল বাড়বে না।
  • যেহেতু অ্যারেতে উপাদান যোগ করলে অ্যারের সর্বোচ্চ কখনই কমবে না। আমরা বড় উপাদান যোগ করলেই এটি বৃদ্ধি পাবে। তাই দৈর্ঘ্য 2 আছে শুধুমাত্র সেইসব সাব্যারে বিবেচনা করা সর্বদাই সর্বোত্তম।
  • অতএব দৈর্ঘ্য 2 এর সমস্ত সাব্যারে বিবেচনা করুন এবং যোগফল তুলনা করুন এবং সর্বনিম্ন একটি নিন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int getMaxSum(int *arr, int n) {
   if (n < 2) {
      return -1;
   }
   int result = arr[0] + arr[1];
   for (int i = 1; i + 1 < n; ++i) {
      result = min(result, (arr[i] + arr[i + 1]));
   }
   return result;
}
int main() {
   int arr[] = {10, 5, 15, 7, 2, 1, 3};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << "Maximum sum = " << getMaxSum(arr, n) << endl;
   return 0;
}

আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট −

তৈরি করে

আউটপুট

Maximum sum = 3

  1. C++ এ কাজের সময়সূচীর ন্যূনতম অসুবিধা

  2. C++ এ একটি লাইনে সর্বোচ্চ পয়েন্ট

  3. C++ এ একটি মিন হিপে x মানের চেয়ে কম সব নোড প্রিন্ট করুন

  4. C++ এ সর্বাধিক হিপে ন্যূনতম উপাদান।