zoukankan      html  css  js  c++  java
  • leetcode64. Minimum Path Sum

    这个题是从左上角到右下角的路径和最小,实际就是一道dp题。

    第一种写法是只初始化(0,0)位置,第二种写法则是把第一行、第一列都初始化了。个人更喜欢第二种写法,简单一点。

    dp的右下角的值就为最终的值

    第一种写法:

    class Solution {
    public:
        int minPathSum(vector<vector<int>>& grid) {
            int rows = grid.size();
            if(rows <= 0)
                return -1;
            int cols = grid[0].size();
            if(cols <= 0)
                return -1;
            vector<vector<int> > result(rows,vector<int>(cols));
            result[0][0] = grid[0][0];
            for(int i = 0;i < rows;i++){
                for(int j = 0;j < cols;j++){
                    if(i != 0 && j != 0)
                        result[i][j] = grid[i][j] + min(result[i-1][j],result[i][j-1]);
                    if(i == 0 && j != 0)
                        result[i][j] = result[i][j-1] + grid[i][j];
                    if(j == 0 && i != 0)
                        result[i][j] = result[i-1][j] + grid[i][j];
                }
            }
            return result[rows-1][cols-1];
        }
    };

     第二种写法:

    class Solution {
    public:
        int minPathSum(vector<vector<int>>& grid) {
            int m = grid.size();
            if(m <= 0)
                return 0;
            int n = grid[0].size();
            if(n <= 0)
                return 0;
            vector<vector<int> > dp(m,vector<int>(n));
            dp[0][0] = grid[0][0];
            for(int i = 1;i < m;i++)
                dp[i][0] = dp[i-1][0] + grid[i][0];
            for(int i = 1;i < n;i++)
                dp[0][i] = dp[0][i-1] + grid[0][i];
            for(int i = 1;i < m;i++){
                for(int j = 1;j < n;j++){
                    dp[i][j] = grid[i][j] + min(dp[i-1][j],dp[i][j-1]);
                }
            }
            return dp[m-1][n-1];
        }
    };
  • 相关阅读:
    node中express的中间件之basicAuth
    python练习1--用户登入
    python基础4--文件操作
    python基础3--字符串
    python基础2--字典
    python基础1--列表
    XP下使用IIS访问asp出现无权查看网页问题的解决办法
    jQueryUI Datepicker的使用
    FileUpload控件使用初步
    HTML中表格元素TABLE,TR,TD及属性的语法
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/9567236.html
Copyright © 2011-2022 走看看