কম্পিউটার

C++ এ পরম মানের অভিব্যক্তির সর্বোচ্চ


ধরুন আমাদের সমান দৈর্ঘ্যের পূর্ণসংখ্যার দুটি অ্যারে আছে, আমাদের সর্বাধিক মান খুঁজে বের করতে হবে:|arr1[i] - arr1[j]| + |arr2[i] - arr2[j]| + |i - j|। যেখানে সর্বাধিক মান 0 <=i, j

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

  • getVal নামক একটি পদ্ধতি সংজ্ঞায়িত করুন, যেটি অ্যারে v

    নেবে
  • maxVal :=-inf, minVal :=inf

  • আমি 0 থেকে v

    এর পরিসরে
    • minVal :=min of v[i] এবং minVal

    • maxVal :=v[i] এবং maxVal

      -এর সর্বোচ্চ
  • রিটার্ন maxVal – minVal

  • মূল পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন

  • 4 আকারের একটি অ্যারে রেট তৈরি করুন

  • n :=arr1 এর আকার

  • 0 থেকে n – 1

    রেঞ্জের i জন্য
    • arr1[i] – arr2[i] + i ret[0]

      -এ ঢোকান
    • ret[1]

      এ arr1[i] + arr2[i] + i ঢোকান
    • arr1[i] – arr2[i] - i ret[2]

      এ সন্নিবেশ করুন
    • arr1[i] + arr2[i] - i ret[3]

      এ সন্নিবেশ করুন
  • উত্তর :=-inf

  • আমি 0 থেকে 3 রেঞ্জের জন্য

    • উত্তর :=সর্বোচ্চ উত্তর এবং getVal(ret[i])

  • উত্তর ফেরত দিন

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

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int getVal(vector <int>& v){
      int maxVal = INT_MIN;
      int minVal = INT_MAX;
      for(int i = 0; i < v.size(); i++){
         minVal = min(v[i], minVal);
         maxVal = max(v[i], maxVal);
      }
      return maxVal - minVal;
   }
   int maxAbsValExpr(vector<int>& arr1, vector<int>& arr2) {
      vector <int> ret[4];
      int n = arr1.size();
      for(int i = 0; i < n; i++){
         ret[0].push_back(arr1[i] - arr2[i] + i);
         ret[1].push_back(arr1[i] + arr2[i] + i);
         ret[2].push_back(arr1[i] - arr2[i] - i);
         ret[3].push_back(arr1[i] + arr2[i] - i);
      }
      int ans = INT_MIN;
      for(int i = 0; i < 4; i++){
         ans = max(ans, getVal(ret[i]));
      }
      return ans;
   }
};
main(){
   vector<int> v1 = {1,2,3,4}, v2 = {-1, 4, 5, 6};
   Solution ob;
   cout << (ob.maxAbsValExpr(v1, v2));
}

ইনপুট

[1,2,3,4]
[-1,4,5,6]

আউটপুট

13

  1. C++ এ একটি অ্যারেতে একটি জোড়ার সর্বোচ্চ বিটওয়াইজ এবং মান

  2. C++ এ প্রদত্ত এক্সপ্রেশনের মান সর্বাধিক করুন

  3. যেকোন বীজগাণিতিক রাশির সর্বোচ্চ মান খুঁজে পেতে C++ প্রোগ্রাম

  4. C++ এ ল্যাম্বডা এক্সপ্রেশন