p2p网站建设哪家好,开发公司与子公司合作协议,国内设计网站公司,怎么自己做个网站算法刷题-动态规划2 珠宝的最高价值下降路径最小和 珠宝的最高价值
题目 大佬思路 多开一行使得代码更加的简洁 移动到右侧和下侧 dp[ i ][ j ]有两种情况#xff1a; 第一种是从上面来的礼物最大价值#xff1a;dp[ i ][ j ] dp[ i - 1 ][ j ] g[ i ][ j ] 第二种是从左… 算法刷题-动态规划2 珠宝的最高价值下降路径最小和 珠宝的最高价值
题目 大佬思路 多开一行使得代码更加的简洁 移动到右侧和下侧 dp[ i ][ j ]有两种情况 第一种是从上面来的礼物最大价值dp[ i ][ j ] dp[ i - 1 ][ j ] g[ i ][ j ] 第二种是从左面来的礼物最大价值dp[ i ][ j ] dp[ i ][ j - 1 ] g[ i ][ j ] 所以得出状态表达式dp[ i ][ j ] max( dp[ i ][ j - 1 ]dp[ i - 1 ][ j ] ) g[ i ][ j ] 2。为了简洁代码多增加一行 class Solution {public int maxValue(int[][] grid) {int m grid.length;int n grid[0].length;//dp[i][j]表示从grid[0][0]到grid[i - 1][j - 1]时的最大价值int[][] dp new int[m 1][n 1];for (int i 1; i m; i) {for (int j 1; j n; j) {dp[i][j] Math.max(dp[i - 1][j], dp[i][j - 1]) grid[i - 1][j - 1];}}return dp[m][n];}
}class Solution {
public: int maxValue(vectorvectorint grid) { int m grid.size(), n grid[0].size(); vectorvectorint dp(m 1, vectorint(n 1)); for (int i 1; i m; i) { for (int j 1; j n; j) { dp[i][j] max(dp[i - 1][j], dp[i][j - 1]) grid[i - 1][j - 1];}}return dp[m][n]; }
};下降路径最小和