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

सबसे बड़ा योग सन्निहित सबरे


पूर्णांकों की एक सरणी दी गई है। हमें उन सभी तत्वों का योग ज्ञात करना है जो सन्निहित हैं, जिनका योग सबसे बड़ा है, जो आउटपुट के रूप में भेजा जाएगा।

गतिशील प्रोग्रामिंग का उपयोग करके हम अधिकतम राशि को वर्तमान अवधि तक संग्रहीत करेंगे। यह सरणी में सन्निहित तत्वों के योग को खोजने में मदद करेगा।

इनपुट और आउटपुट

Input:
An array of integers. {-2, -3, 4, -1, -2, 1, 5, -3}
Output:
Maximum Sum of the Subarray is: 7

एल्गोरिदम

maxSum(array, n)

इनपुट - मुख्य सरणी, सरणी का आकार।

आउटपुट - अधिकतम राशि।

Begin
   tempMax := array[0]
   currentMax = tempMax
   for i := 1 to n-1, do
      currentMax = maximum of (array[i] and currentMax+array[i])
      tempMax = maximum of (currentMax and tempMax)
   done
   return tempMax
End

उदाहरण

#include<iostream>
using namespace std;

int maxSum( int arr[], int n) {
   int tempMax = arr[0];
   int currentMax = tempMax;

   for (int i = 1; i < n; i++ ) { //find the max value
      currentMax = max(arr[i], currentMax+arr[i]);
      tempMax = max(tempMax, currentMax);
   }
   return tempMax;
}

int main() {
   int arr[] = {-2, -3, 4, -1, -2, 1, 5, -3};
   int n = 8;
   cout << "Maximum Sum of the Sub-array is: "<< maxSum( arr, n );
}

आउटपुट

Maximum Sum of the Sub-array is: 7

  1. सी ++ में एक पेड़ में सबसे बड़ा सबट्री योग खोजें

    इस समस्या में हमें एक बाइनरी ट्री दिया जाता है। हमारा काम पेड़ में सबसे बड़ा सबट्री योग खोजना है। समस्या का विवरण: बाइनरी ट्री में सकारात्मक और साथ ही नकारात्मक मान होते हैं। और हमें उस सबट्री को खोजने की जरूरत है जिसमें नोड्स की अधिकतम राशि हो। समस्या को समझने के लिए एक उदाहरण लेते हैं,

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

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

  1. पायथन में सन्निहित अंकों का सबसे बड़ा उत्पाद

    =k अंक होने की गारंटी है। इसलिए, यदि इनपुट संख्या =52689762 और k =4 जैसा है, तो आउटपुट 3024 होगा, लगातार 4 अंकों का सबसे बड़ा उत्पाद (8*9*7*6) =3024 है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - सबसे बड़ा :=0 कैंडी:=1 0, करें अंक :=(अंकों का अंतिम अंक)^k कैंडी:=1 0, करते हैं cand :=cand