LeetCode 064 Minimum Path Sum

来源:互联网 发布:firefox linux 安装 编辑:程序博客网 时间:2024/05/16 07:10

和LeetCode 063和LeetCode 062差不多一样的意思,做法也差不多,主要这题是求左上到右下的最短代价。而一个位置的最短代价是dp[ii][jj]=min(dp[ii-1][jj],dp[ii][jj-1])+在此处的代价。

class Solution {public:    int minPathSum(vector<vector<int>>& grid) {        int m=grid.size();        int n=grid[0].size();        vector<vector<int>>dp(m+1,vector<int>(n+1));        for(int ii=1;ii<=m;ii++){            for(int jj=1;jj<=n;jj++){                if(ii-1==0){dp[ii][jj]=dp[ii][jj-1]+grid[ii-1][jj-1];continue;}                if(jj-1==0){dp[ii][jj]=dp[ii-1][jj]+grid[ii-1][jj-1];continue;}                if(ii==1&&jj==1){dp[1][1]=grid[0][0];continue;}                dp[ii][jj]=dp[ii-1][jj]<dp[ii][jj-1]?dp[ii-1][jj]+grid[ii-1][jj-1]:dp[ii][jj-1]+grid[ii-1][jj-1];            }        }        return dp[m][n];    }};


0 0
原创粉丝点击