मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची और एक मान k है। हमें उन तत्वों का अधिकतम योग ढूंढना है जिन्हें हम डिलीट कर सकते हैं, दिया गया है कि हमें ठीक k बार पॉप करना है, जहां प्रत्येक पॉप बाएं या दाएं छोर से हो सकता है।
उदाहरण के लिए, यदि इनपुट nums = [2, 4, 5, 3, 1] और k = 2 है, तो आउटपुट 6 होगा, क्योंकि हम 2 और 4 को डिलीट कर सकते हैं।
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
window := nums[0] से nums[k-1]तक का योगans := windowiको 1 सेkतक:window := window - nums[k-i]window := window + nums[-i]ans := max(ans, window)
ansलौटाएं
उदाहरण कोड
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