Interval DP
From:http://www.stanford.edu/class/cs97si/04-dynamic-programming.pdf
Problem:插入最少的字母使输入的串,变成回文串。
Solve:d[i][j]表示i~j最少需要添加几个字母,一个字母即d[i][i]=0。
如果y[1~k]为x[i~j]最佳解,则y[2~k-1]必为x[i+1~j],x[i~j-1]和x[i+1~j-1]其中之一的最优解。
// fill in base cases here
for(t = 2; t <= n; t++)
for(i = 1, j = t; j <= n; i++, j++)
// fill in D[i][j] here
文中还提到一种解法:
View Code
DP, 空间复杂度O(5000*5000) MEL+滚动数组