- 算法描述。 第一题:1,、先把所有的数存进一个数组里。 2、最顶层的最大值从下一层的最大值的基础上求得,以此类推。所以从最底层开始选择,倒数第二层中选择下一层相邻数字的最大值相加原本的数字,在原数组的基础上修改每一个数字,自底向上,直到修改最顶层的数字为止。 第二题:初始化一个二维数组,m[i][j]表示从第i个数到第j个数相加的结果,一边加,一边记录最大的和。第三题:动态规划的方式已经求得的值进行保存,首要初始化一张表出来,就是一个二维数组,
N[A.length + 1][B.length + 1]
。可以分为4类: 1. AA或者BB字符相等,N[i,j]N[i,j]等同于N[i,j]N[i,j]2. 更改AA或者BB字符,N[i,j]N[i,j]等同于N[i−1,j−1]N[i−1,j−1]
3. 删除AA字符或者增加BB字符,N[i,j]N[i,j]等同于N[i−1][j]+1N[i−1][j]+1
4. 删除BB字符或者增加AA字符,N[i,j]N[i,j]等同于N[i][j−1]+1N[i][j−1]+1
最终N[i,j]N[i,j]的值就为min(情况1 || 情况2, 情况3, 情况4)的最小值,并且N[i,j]N[i,j]代表的是A[0−i]A[0−i]与B[0−j]B[0−j]的最小编辑距离。