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];
        }
    };
  • 相关阅读:
    Codeforces 1316B String Modification
    Codeforces 1305C Kuroni and Impossible Calculation
    Codeforces 1305B Kuroni and Simple Strings
    Codeforces 1321D Navigation System
    Codeforces 1321C Remove Adjacent
    Codeforces 1321B Journey Planning
    Operating systems Chapter 6
    Operating systems Chapter 5
    Abandoned country HDU
    Computer HDU
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/9567236.html
Copyright © 2011-2022 走看看