该程序在Python中查找最大的K子列表的总和
假设我们有一个称为nums的数字列表,另一个值为k,表示连接k次的大量nums列表。我们必须找到具有最大和的连续子列表的和。
因此,如果输入像nums = [1,3,4,-5],k = 1,那么输出将是11,因为我们可以像[2,4,5]那样使用子列表
为了解决这个问题,我们将遵循以下步骤-
s:= ans:= lo:= 0
对于范围0到k的最小值和2的所有值,请执行
s:= s + x
lo:= lo,s的最小值
ans:= ans,s-lo的最大值
对于每个以num为单位的x
返回ans +最大值0和所有nums元素的总和*最大值0和(k-2)
让我们看下面的实现以更好地理解-
示例
class Solution:def solve(self, nums, k):
s = ans = lo = 0
for _ in range(min(k, 2)):
for x in nums:
s += x
lo = min(lo, s)
ans = max(ans, s - lo)
return ans + max(0, sum(nums)) * max(0, (k - 2))
ob = Solution()nums = [2, 4, 5, -4]
k = 1
print(ob.solve(nums, k))
输入值
[2, 4, 5, -4], 1
输出结果
11
以上是 该程序在Python中查找最大的K子列表的总和 的全部内容, 来源链接: utcz.com/z/347126.html