最小可能的「最大段和」暴力解
題目(Problem)
給定一個長度為 n 的正整數陣列 A[0..n-1],你要把它切成 恰好 k 段連續子陣列(k ≤ n)。定義每段的「段和」為該段元素總和。目標是最小化所有段和中的最大值。
必須保持原來順序、只能切割、段與段不可交錯(連續切段)。
回傳(或輸出)最小可能的「最大段和」。
例子
A = [7, 2, 5, 10, 8], k = 2
最佳切法是 [7, 2, 5] | [10, 8],兩段和分別為 14 與 18,最大為 18;證明不存在更小的可能,答案是 18。
a = [7, 2, 5, 10, 8]
k = 2
minmax = float('inf')
for i in range(0,5-1):
left = a[:i+1]
right = a[i+1:]
print(left,right)
if max(sum(left),sum(right))
沒有留言:
張貼留言