我目前正在阅读 Jon Bentley 的“Programming Pearls”,其中有一个我似乎无法回答的问题。这里是:
在最大子数组问题中,给定一个 nxn 实数数组,我们必须找到包含在任何矩形子数组中的最大和。
在本章中,它列出了一种求数组最大值的算法:
maxsofar = 0
maxendinghere = 0
for i = [0, n) // n) = n-1
/*ivariant: maxendinghere 和 maxsofar 对于 x[ 是准确的0…i-1] */
maxendinghere = mac(maxendinghere + x[i], 0)
maxsofar = mac(maxsofar, maxendinghere)
我正在考虑您是否可以按照
上面显示的算法
对所有行的
所有列说些什么
但我不确定这是否可行。有任何想法吗?