用 Python 编写的程序,通过从末尾删除 K 个数字来查找最大和
pythonserver side programmingprogramming
假设我们有一个名为 nums 的数字列表和另一个值 k。我们必须找到可以删除的最大元素总和,因为我们必须弹出 k 次,每次弹出都可以从左端或右端进行。
因此,如果输入为 nums = [2, 4, 5, 3, 1] k = 2,则输出将为 6,因为我们可以删除 2 和 4。
要解决这个问题,我们将遵循以下步骤 −
- window := 从索引 0 到 k - 1 的所有数字的总和
- ans := window
- 对于范围从 1 到 k 的 i,执行
- window := window - nums[k - i]
- window := window + nums[-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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

