मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे nums कहा जाता है, और दूसरा मान k है, जो k बार संयोजित संख्याओं की एक बड़ी सूची का प्रतिनिधित्व करता है। हमें सबसे बड़ी राशि के साथ सन्निहित उप-सूची का योग ज्ञात करना है।
इसलिए, यदि इनपुट nums =[1, 3, 4, -5], k =1 जैसा है, तो आउटपुट 11 होगा, क्योंकि हम [2, 4, 5] जैसे सबलिस्ट ले सकते हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- s :=ans :=lo :=0
- 0 से लेकर न्यूनतम k और 2 तक के सभी मानों के लिए, करें
- अंकों में प्रत्येक x के लिए, करें
- s :=s + x
- लो:=कम से कम लो, एस
- उत्तर :=अधिकतम उत्तर, s - lo
- अंकों में प्रत्येक x के लिए, करें
- वापसी उत्तर + अधिकतम 0 और अंकों के सभी तत्वों का योग * अधिकतम 0 और (के - 2)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, nums, k): s = ans = lo = 0 for _ in range(min(k, 2)): for x in nums: s += x lo = min(lo, s) ans = max(ans, s - lo) return ans + max(0, sum(nums)) * max(0, (k - 2)) ob = Solution() nums = [2, 4, 5, -4] k = 1 print(ob.solve(nums, k))
इनपुट
[2, 4, 5, -4], 1
आउटपुट
11