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

अधिकतम आकार सबरे योग सी ++ में के बराबर है

मान लीजिए कि हमारे पास nums नामक एक सरणी है और एक लक्ष्य मान k है, तो हमें एक उप-सरणी की अधिकतम लंबाई ज्ञात करनी होगी जो k के बराबर हो। अगर कोई मौजूद नहीं है, तो इसके बजाय 0 लौटाएं।

इसलिए, यदि इनपुट संख्या =[1, -1, 5, -2, 3], k =3 जैसा है, तो आउटपुट 4 होगा, जैसा कि सबरे [1, - 1, 5, -2] का योग है 3 और सबसे लंबा है।

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

  • रिट:=0

  • एक नक्शा परिभाषित करें मी

  • n :=अंकों का आकार

  • अस्थायी:=0, एम [0]:=-1

  • इनिशियलाइज़ i:=0 के लिए, जब i

    • अस्थायी:=अस्थायी + अंक [i]

    • अगर (अस्थायी - के) मी में है, तो -

      • ret :=अधिकतम रिट और i - m[temp - k]

    • यदि तापमान मी में नहीं है, तो -

      • एम [अस्थायी]:=मैं

  • वापसी रिट

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int maxSubArrayLen(vector<int<& nums, int k) {
      int ret = 0;
      unordered_map <int, int> m;
      int n = nums.size();
      int temp = 0;
      m[0] = -1;
      for(int i = 0; i < n; i++){
         temp += nums[i];
         if(m.count(temp - k)){
            ret = max(ret, i - m[temp - k]);
         }
         if(!m.count(temp)){
            m[temp] = i;
         }
      }
      return ret;
   }
};
main(){
   Solution ob;
   vector<int< v = {1,-1,5,-2,3};
   cout << (ob.maxSubArrayLen(v, 3));
}

इनपुट

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

आउटपुट

4

  1. कम से कम X के आकार के उप-सरणी का अधिकतम औसत और C++ में अधिकतम Y

    समस्या कथन एक सरणी गिरफ्तारी [] और दो पूर्णांक X और Y को देखते हुए। कार्य कम से कम X के आकार की एक उप-सरणी और अधिकतम औसत के साथ अधिकतम Y को खोजना है उदाहरण यदि इनपुट ऐरे {2, 10, 15, 7, 8, 4} और x =3 और Y =3 है तो हम निम्न प्रकार से अधिकतम औसत 12.5 प्राप्त कर सकते हैं - (10 + 15) / 2 = 12.5 एल्गोरि

  1. C++ में अधिकतम योग सख्ती से बढ़ते हुए सबरे का पता लगाएं

    मान लीजिए कि हमारे पास n पूर्णांकों की एक सरणी है। सख्ती से बढ़ते उपसरणियों का अधिकतम योग ज्ञात कीजिए। तो अगर सरणी [1, 2, 3, 2, 5, 1, 7] की तरह है, तो योग 8 है। इस सरणी में तीन सख्ती से बढ़ते उप-सरणी हैं ये {1, 2, 3}, {2 , 5} और {1, 7}। अधिकतम योग उप-सरणी {1, 7} है इस समस्या को हल करने के लिए, हमें

  1. C++ में डिवाइड और कॉनकर का उपयोग करते हुए अधिकतम योग सबअरे

    मान लीजिए कि हमारे पास सकारात्मक और नकारात्मक मूल्यों वाले डेटा की एक सूची है। हमें सन्निहित उप-सरणी का योग ज्ञात करना है जिसका योग सबसे बड़ा है। मान लीजिए सूची में {-2, -5, 6, -2, -3, 1, 5, -6} है, तो अधिकतम उप-सरणी का योग 7 है। यह {6, -2, -3 का योग है। , 1, 5} हम इस समस्या का समाधान फूट डालो और ज