对于石子合并问题,有一个最好的算法,那就是GarsiaWachs算法。时间复杂度为O(n^2)。
具体的算法及证明可以参见《The Art of ComputerProgramming》第3卷6.2.2节Algorithm G和Lemma W,Lemma X,Lemma Y,LemmaZ。
它的步骤如下:
本文介绍了Garsia-Wachs算法在合并石子问题中的应用,通过寻找满足特定条件的石子堆进行合并,并利用代码实现这一过程,最终达到只剩一堆石子的目标。算法从序列左侧开始,考虑石子堆的相对大小,通过插入操作逐步优化序列。
它的步骤如下:
1136

被折叠的 条评论
为什么被折叠?