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