কম্পিউটার

C++ এ তালিকার মান সমান করা


ধরুন আমাদের কাছে সংখ্যা বলা পূর্ণসংখ্যার একটি তালিকা আছে। এখন ধরুন একটি অপারেশন যেখানে আমরা তালিকায় পূর্ণসংখ্যার কিছু উপসেট নির্বাচন করি এবং তাদের সকলকে এক করে বৃদ্ধি করি। তালিকার সমস্ত মান একে অপরের সমান করার জন্য আমাদের প্রয়োজনীয় ক্রিয়াকলাপের ন্যূনতম সংখ্যা খুঁজে বের করতে হবে৷

সুতরাং, ইনপুট যদি [1,3,5] এর মত হয়, তাহলে আউটপুট হবে 4।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • যদি সংখ্যার আকার 1 এর মতো হয়, তাহলে −

    • রিটার্ন 0

  • ret :=0

  • maxVal :=-inf

  • minVal :=inf

  • আরম্ভ করার জন্য i :=0, যখন i <সংখ্যার আকার, আপডেট (i 1 দ্বারা বৃদ্ধি), −

    • maxVal :=সর্বোচ্চ maxVal এবং সংখ্যা[i]

    • minVal :=সর্বনিম্ন minVal এবং nums[i]

  • রিটার্ন maxVal - minVal

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int solve(vector<int> &nums) {
      if (nums.size() == 1)
      return 0;
      int ret = 0;
      int maxVal = INT_MIN;
      int minVal = INT_MAX;
      for (int i = 0; i < nums.size(); i++) {
         maxVal = max(maxVal, nums[i]);
         minVal = min(minVal, nums[i]);
      }
      return maxVal - minVal;
   }
};
main() {
   Solution ob;
   vector<int> v = {1,3,5};
   cout << (ob.solve(v));
}

ইনপুট

{1,3,5}

আউটপুট

4

  1. C++ এ একটি লিঙ্কযুক্ত তালিকা সমতল করা

  2. C++ ব্যবহার করে একটি লিঙ্ক করা তালিকা উল্টান

  3. C++ এ সমান সমষ্টি এবং XOR

  4. C++ এ সমান ট্রি পার্টিশন