擅长:python、mysql、java
<p>这是使用列表切片而不是嵌套循环更好地实现算法:</p>
<pre><code>def part_sum(TE, TC, TU, j):
return sum(TE[:j+1]) + sum(TC[j+1:]) + TU[j]
def optimal_partition(TE, TC, TU):
return min(range(len(TE)), key=lambda j: part_sum(TE, TC, TU, j))
TE = [10,1,3]
TC = [2,3,1]
TU = [2,3,1]
print("The sums are: ", [part_sum(TE, TC, TU, j) for j in range(3)])
print("The optimal partition is at:", optimal_partition(TE, TC, TU))
</code></pre>
<p>请注意,有3个和,而不是2个,并且j的返回值使用基于零的索引。如果您想返回一个基于一的索引,那么只需将1添加到最佳分区结果中即可</p>