मान लीजिए कि हमारे पास एन सकारात्मक संख्याओं की सूची संख्या है। अब हम सूची से किसी एक मान का चयन कर सकते हैं, और इसे किसी भी स्थिति में ले जा सकते हैं (स्वैप नहीं)। हम किसी को भी स्थिति में बिल्कुल भी नहीं ले जा सकते हैं। तो हमें यह पता लगाना होगा कि सूची की अधिकतम संभव अंतिम शक्ति क्या है? जैसा कि हम जानते हैं कि किसी सूची की शक्ति सभी सूचकांकों पर (इंडेक्स + 1) * value_at_index i.
का योग है।$$\displaystyle\sum\limits_{i=0}^{n-1} (i+1)\times list[i]$$
इसलिए, यदि इनपुट संख्या =[6, 2, 3] की तरह है, तो आउटपुट 26 होगा, क्योंकि हम सूची [2, 3, 6] प्राप्त करने के लिए 6 को अंत तक ले जा सकते हैं, इसलिए शक्ति है:(2) * 1) + (3 * 2) + (6 * 3) =26.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
पी:=मान 0 के साथ एक सूची
-
आधार :=0
-
प्रत्येक अनुक्रमणिका i और A के मान x के लिए, करें
-
P के अंत में P + x का अंतिम अवयव डालें
-
आधार:=आधार + (i+1) * x
-
-
उत्तर:=आधार
-
प्रत्येक अनुक्रमणिका i और मान x के लिए A, करें
-
j के लिए 0 से A + 1 के आकार की श्रेणी में, करें
-
उत्तर:=अधिकतम उत्तर और (आधार + पी [i] - पी [जे] - (आई - जे) * एक्स)पी>
-
-
-
वापसी उत्तर
उदाहरण
आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -
class Solution: def solve(self, A): P = [0] base = 0 for i, x in enumerate(A, 1): P.append(P[-1] + x) base += i * x ans = base for i, x in enumerate(A): for j in range(len(A) + 1): ans = max(ans, base + P[i] - P[j] - (i - j) * x) return ans ob = Solution() nums = [6, 2, 3] print(ob.solve(nums))
इनपुट
[6, 2, 3]
आउटपुट
26