Leetcode之动态规划(DP)专题-64. 最小路径和(Minimum Path Sum)

匿名 (未验证) 提交于 2019-12-02 23:57:01

Leetcode之动态规划(DP)专题-64. 最小路径和(Minimum Path Sum)


mn

说明:每次只能向下或者向右移动一步。

示例:

 
找从左上角0,0到右下角的最短路径。DP:我们每个点(x,y)都可以表示为dp[x][y] = max( grid[x][y] + dp[x-1][y],grid[x][y] + dp[x][y-1] )第一行和第一列需要特殊处理(因为第一行上面没有数,第一列左边没有数)
class Solution {     public int minPathSum(int[][] grid) {                  int dp[][] = new int[grid.length][grid[0].length];         dp[0][0] = grid[0][0];         for(int i=1;i<grid.length;i++){             dp[i][0] = dp[i-1][0]+grid[i][0];                      }         for(int i=1;i<grid[0].length;i++){             dp[0][i] = dp[0][i-1]+grid[0][i];         }         for(int i=1;i<grid.length;i++){             for(int j=1;j<grid[0].length;j++){                 dp[i][j] = Math.min(dp[i-1][j]+grid[i][j],dp[i][j-1]+grid[i][j]);                                               }         }         return dp[grid.length-1][grid[0].length-1];     } }

 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!