[LeedCode OJ]#64 Minimum Path Sum

来源:互联网 发布:mac绝对路径 编辑:程序博客网 时间:2024/05/22 13:26
 【 声明:版权所有,转载请标明出处,请勿用于商业用途。  联系信箱:libin493073668@sina.com】

题目链接:https://leetcode.com/problems/minimum-path-sum/

题意:
给出一个全是非负整数的二维矩阵,从左上角走到右下角,只能往下或者往右行走,路径的价值是路径里所有的数字之和,输出最小的路径价值

思路:
对于坐标(i,j),我们只需要找上方与左边最小的路径值加上该位置的路径值即可
状态转移方程dp[i][j] = min(dp[i-1][j],dp[i][j-1])+a[i][j];

class Solution{public:    int minPathSum(vector<vector<int>>& a)    {        int n = a.size(),m = a[0].size();        int i,j;        vector<vector<int> > dp;        dp.resize(n+1);        for(i = 0; i<=n; i++)            dp[i].resize(m+1);        dp[0][0] = a[0][0];        for(i = 0; i<n; i++)        {            for(j = 0; j<m; j++)            {                if(i==0&&j==0) continue;                if(i==0)                {                    dp[i][j] = dp[i][j-1]+a[i][j];                    continue;                }                if(j==0)                {                    dp[i][j] = dp[i-1][j]+a[i][j];                    continue;                }                dp[i][j] = min(dp[i-1][j],dp[i][j-1])+a[i][j];            }        }        return dp[n-1][m-1];    }};


0 0
原创粉丝点击