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

C++ में कम से कम k संख्याओं के साथ सबसे बड़ा योग उप-सरणी

आइए कार्यक्रम को पूरा करने के चरणों को देखें।

  • सरणी प्रारंभ करें।
  • n आकार की max_sum सरणी प्रारंभ करें।
  • प्रत्येक अनुक्रमणिका के लिए अधिकतम योग ढूंढें और उसे max_sum सरणी में संग्रहीत करें।
  • सभी तत्वों के योग की गणना करें और इसे एक चर योग में संग्रहित करें।
  • एक लूप लिखें जो i =k से n तक पुनरावृत्त हो।
    • योग में a[i] - a[i - k] जोड़ें।
    • परिणाम को अधिकतम परिणाम, योग के साथ अपडेट करें।
    • परिणाम को अधिकतम परिणाम, योग + max_sum[i - k] के साथ अपडेट करें।

उदाहरण

आइए कोड देखें।

#include<bits/stdc++.h>
using namespace std;
int getMaxSum(int a[], int n, int k) {
   int maxSum[n];
   maxSum[0] = a[0];
   int currentMax = a[0];
   for (int i = 1; i < n; i++) {
      currentMax = max(a[i], currentMax+a[i]);
      maxSum[i] = currentMax;
   }
   int sum = 0;
   for (int i = 0; i < k; i++) {
      sum += a[i];
   }
   int result = sum;
   for (int i = k; i < n; i++) {
      sum += a[i] - a[i-k];
      result = max(result, sum);
      result = max(result, sum + maxSum[i-k]);
   }
   return result;
}
int main() {
   int a[] = {5, 3, 7, -5, 6, 2, 1};
   int k = 6;
   cout << getMaxSum(a, 7, k) << endl;
   return 0;
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।

19

निष्कर्ष

यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।


  1. सबरे योग C++ में K के बराबर होता है

    मान लीजिए कि हमारे पास पूर्णांकों की एक सरणी और एक पूर्णांक k है, तो हमें निरंतर उप-सरणियों की कुल संख्या ज्ञात करनी होगी जिनका योग k के समान है। तो अगर nums array [1, 1, 1] है और k 2 है, तो आउटपुट 2 होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - एक मानचित्र को परिभाषित करें जिसे योग कहा ज

  1. C++ में योग S के साथ अभाज्य P के बाद अभाज्य संख्याएँ

    इस समस्या में, हमें तीन संख्याएँ दी गई हैं, योग S, अभाज्य P, और N। हमारा कार्य P से बड़ी सभी N अभाज्य संख्याओं का पता लगाना है जिनका योग S के बराबर है। हमारी समस्या को समझने के लिए एक उदाहरण लेते हैं Input: N = 2, P = 5, S = 18 Output: 7 11 Explanation: Prime numbers greater than 5 : 7 11 13 Sum =

  1. सी++ में अधिकतम सबरे योग मॉड्यूलो एम

    इस समस्या में, हमें n आकार की एक सरणी और एक पूर्णांक m दिया जाता है। हमारा काम एक ऐसा प्रोग्राम बनाना है जो C++ में अधिकतम सबअरे योग मॉड्यूल m ढूंढेगा। कार्यक्रम विवरण - यहां, हम सबएरे के सभी तत्वों के योग को m से विभाजित करके प्राप्त अधिकतम मान प्राप्त करेंगे। समस्या को समझने के लिए एक उदाहरण लेत