在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