在Python中查找从两端删除K个数的最大总和的程序

在Python中查找从两端删除K个数的最大总和的程序

假设我们有一个名为nums的数字列表和另一个值k。我们必须找到可以删除的元素的最大总和,假设我们必须精确弹出k次,其中每个弹出可以从左端或右端进行。

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

为此,我们将按照以下步骤执行 –

  • window:从索引0到k – 1的所有数字的总和
  • ans:窗口
  • 对于i在范围1到k之间,则执行
    • 窗口:窗口 – nums [k-i]
    • 窗口:窗口 + nums [-i]
    • 最大值和窗口的答案
  • 返回ans

让我们看下面的实现以便更好地理解 –

更多Python相关文章,请阅读:Python 教程

示例

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程