अधिकतम योग वृद्धि अनुक्रम पूर्णांकों की दी गई सूची का एक क्रम है, जिसका योग अधिकतम होता है और बाद में, सभी तत्वों को बढ़ते क्रम में क्रमबद्ध किया जाता है।
मान लें कि अधिकतम योग वृद्धि क्रम को संग्रहीत करने के लिए एक सरणी है, जैसे कि L[i] अधिकतम योग वृद्धि क्रम है, जो सरणी [i] के साथ समाप्त हो रहा है।
इनपुट और आउटपुट
<पूर्व>इनपुट:पूर्णांकों का अनुक्रम। {3, 2, 6, 4, 5, 1}आउटपुट:बढ़ते क्रम जिसका योग अधिकतम है। {3, 4, 5}.एल्गोरिदम
maxSumSubSeq(array, n)
इनपुट: संख्याओं का क्रम, तत्वों की संख्या।
आउटपुट: बढ़ते उप क्रम का अधिकतम योग।
आकार n के subSeqLen नामक सरणियों की सरणी को परिभाषित करना शुरू करें। श्रेणी में (1 से n-1) के लिए सबसेक्लेन में एआर [0] जोड़ें, रेंज में जे के लिए करें (0 से आई-1), अगर एआर [i]> एआर [जे] और सबसेकलेन का योग [i] करें ]subSeqLen[res] का योग, फिर res :=subSeqLen[i] res.End के मानों को प्रिंट करें।
उदाहरण
#शामिल#शामिल <वेक्टर>नाम स्थान एसटीडी का उपयोग करना; int findAllSum(vector arr) {// सभी वेक्टर तत्वों का योग खोजें int sum =0; for(int i =0; i > subSeqLen(n); // गिरफ्तारी के साथ समाप्त होने वाली अधिकतम राशि वृद्धि [i] सबसेकलेन [0]। पुश_बैक (गिरफ्तारी [0]); के लिए (int i =1; i arr[j]) &&(findAllSum(subSeqLen[i]) res =subSeqLen [0]; for(int i =0; i findAllSum(res)) res =subSeqLen[i]; } for(int i =0; i आउटपुट
अधिकतम योग अनुवर्ती है:3 4 5