【发布时间】:2019-08-22 10:07:56
【问题描述】:
我正在尝试修改 Kadane 算法以解决更具体的问题。
def max_Sum(arr, length, k):
if length < k:
print('length of array should be greater than k')
res = 0
for i in range(0, k):
res += arr[i]
current_sum = res
for i in range(k, n):
if k == n:
for j in range(0, k-1):
res += arr[j]
current_sum = res
else:
current_sum += arr[i] - arr[i-k]
print(res, current_sum)
res = max(res, current_sum)
return res
这是最大子数组问题的代码。我想要做的是找到长度最多为 K 的最大子数组。
示例:我们有一个数组 A = [3,-5 1 2,-1 4,-3 1,-2],我们想找到最大长度为 K = 9 的子数组。子数组的长度应该不限制在 K,如果有另一个长度 L
在这种情况下,算法将返回 0。它应该返回 6,跟在 A[2:5] 的总和之后。
【问题讨论】:
标签: dynamic-programming sub-array subsequence