Python中的K前缀
假设我们有一个数字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的i-1,执行
nums[i]:=nums[i]+nums[i-1]
对于范围为-1到-1的i,将其减小1,
还给我
如果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
热门推荐
1 祝福语简短古诗词
10 诗词文案祝福语简短精辟
11 拥有爱的祝福语简短
12 天气转凉祝福语简短
13 节日祝福语幽默简短的
14 18岁简短祝福语经典
15 同事男生节祝福语简短
16 宝宝新生入学祝福语简短
17 国庆简短幽默祝福语
18 祝福语大全简短赞美同学