Python 中的 K 前缀
pythonserver side programmingprogramming更新于 2025/12/27 6:04:17
假设我们有一个数字列表 nums 和一个整数 k,我们必须找到最大 可能的 i,其中 nums[0] + nums[1] + ... + nums[i] ≤ k。如果不存在有效的 i,我们将返回 -1。
因此,如果输入为 nums = [4, -7, 5, 2, 6],k = 5,则输出将为 3,索引为 3,就好像我们添加 4+(-7)+5+2 = 4,这小于 k,如果我们添加最后一个元素,它将不再小于 k,因此索引为 3。
为了解决这个问题,我们将遵循以下步骤 −
- 对于范围为 1 到 nums 大小 - 1 的 i,执行
- nums[i] := nums[i] + nums[i-1]
- 对于范围为 -1 到 -1 的 nums 大小的 i,减少 1,执行
- 如果nums[i]<=k,则
- 返回 i
- 如果nums[i]<=k,则
- 返回 -1
让我们看看下面的实现以便更好地理解 −
示例
class Solution: def solve(self, nums, k): for i in range(1,len(nums)): nums[i]+=nums[i-1] for i in range(len(nums)-1,-1,-1): if nums[i]<=k: return i return -1 ob = Solution() nums = [4, -7, 5, 2, 6] k = 5 print(ob.solve(nums, k))
输入
[4, -7, 5, 2, 6], 5
输出
3
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

