每日总结
今天依旧是动态规划。(倒着回去)
64. 最小路径和
初始一下两边的值(从左上角开始的第零行和第零列),之后的每一个格子由紧挨着它的上左两个格子的最小值加上当前格子的值得来。
ans[i][j] = Math.min(ans[i - 1][j], ans[i][j - 1]) + grid[i][j];
123. 买卖股票的最佳时机 III关键的状态转移方程为
buy1 = Math.max(buy1, -prices[i]);
sel1 = Math.max(sel1, buy1 + prices[i]);
buy2 = Math.max(buy2, sel1 - prices[i]);
sel2 = Math.max(sel2, buy2 + prices[i]);
121. 买卖股票的最佳时机
动态实时寻找最低点买入,实时更新最大利润
72. 编辑距离
初始呢,第一行和第一列,D[i][0] 相当于对 word1 执行 i 次删除操作,D[0][j] 相当于对 word1执行 j 次插入操作。
之后呢,遇到的字母相等那就不变等于D[i-1][j-1].
if(word1.charAt(i-1) == word2.charAt(j-1)) {//注意,因为D[0][0]没有字母。
ans[i][j] = ans[i-1][j-1];
}else {
ans[i][j] = Math.min(Math.min(ans[i-1][j],ans[i][j-1]),ans[i-1][j-1]) + 1;
}
浙公网安备 33010602011771号