Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में अधिकतम निरपेक्ष मान व्यंजक

मान लीजिए कि हमारे पास समान लंबाई वाले पूर्णांकों के दो सरणियाँ हैं, तो हमें इसका अधिकतम मान ज्ञात करना होगा:|arr1[i] - arr1[j]| + |arr2[i] - arr2[j]| + |मैं - जे|। जहाँ अधिकतम मान सभी 0 <=i, j

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • getVal नामक एक विधि को परिभाषित करें, जो सरणी v

    . लेगी
  • मैक्सवैल:=-इनफ, मिनवैल:=इंफ

  • मैं के लिए 0 से वी के आकार में

    • minVal :=min of v[i] and minVal

    • maxVal :=अधिकतम v[i] और maxVal

  • वापसी maxVal - minVal

  • मुख्य विधि से, निम्न कार्य करें

  • आकार 4 का एक सरणी रिट बनाएं

  • n :=arr1 का आकार

  • मैं के लिए 0 से n - 1 की सीमा में

    • arr1[i] - arr2[i] + i को ret[0]

      . में डालें
    • arr1[i] + arr2[i] + i को रिट में डालें[1]

    • arr1[i] - arr2[i] - i को ret में डालें[2]

    • arr1[i] + arr2[i] - i को ret[3]

      . में डालें
  • उत्तर :=-इन्फ

  • मेरे लिए 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++ में दिए गए व्यंजक के मान को अधिकतम करें

    समस्या कथन तीन गैर-शून्य पूर्णांक a, b और c दिए गए हैं। कार्य किसी भी क्रम में उनके बीच जोड़ और गुणा चिह्न लगाकर अधिकतम संभव मूल्य ज्ञात करना है। कृपया ध्यान दें कि पूर्णांकों की पुनर्व्यवस्था की अनुमति है लेकिन जोड़ और गुणन चिह्न एक बार उपयोग किया जाना चाहिए। यदि a =1, b =3 और c =5 तो अधिकतम मान

  1. किसी भी बीजीय व्यंजक का अधिकतम मान ज्ञात करने के लिए C++ प्रोग्राम

    यह किसी बीजीय व्यंजक का अधिकतम मान ज्ञात करने के लिए एक C++ प्रोग्राम है। (x1 + x2 + x3 +... + xa) * (y1 + y2 + ... + yb) और (a + b) का बीजीय व्यंजक ) पूर्णांक दिए गए हैं। एक संख्या और शेष बी संख्याओं के सभी संभावित संयोजनों पर विचार करें और उनके मूल्यों की गणना करें, जिससे अधिकतम मूल्य प्राप्त किया

  1. सी ++ में लैम्ब्डा अभिव्यक्ति

    C++ STL में उपयोगी सामान्य कार्य जैसे std::for_each शामिल हैं। दुर्भाग्य से वे उपयोग करने के लिए काफी बोझिल भी हो सकते हैं, खासकर यदि आप जिस फ़ैक्टर को लागू करना चाहते हैं वह विशेष फ़ंक्शन के लिए अद्वितीय है। तो यह फ़ंक्शन जो आप बनाएंगे वह उस नामस्थान में होगा जिसका उपयोग केवल उसी स्थान पर किया जा र