程序通过从python的末端删除K个数字来找到最大和

假设我们有一个称为nums的数字列表,另一个值为k。考虑到我们必须正好弹出k次(每次弹出可以从左端或右端开始),我们必须找到可以删除的元素的最大和。

因此,如果输入类似于nums = [2,4,5,3,1] k = 2,则输出将为6,因为我们可以删除2和4。

为了解决这个问题,我们将遵循以下步骤-

  • 窗口:=从索引0到k-1的所有数字的总和

  • ans:=窗口

  • 对于1到k范围内的i

    • window:= window-nums [k-i]

    • 窗口:=窗口+数字[-i]

    • ans:= 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