该程序在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
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短