您的位置:首页 > 其它

LeetCode:Minumus Path Sum(矩阵路线的元素最小值DP)

2015-08-03 15:44 375 查看
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.

Note: You can only move either down or right at any point in time.

思路:与求两个字符串的最长公共子序列的长度思路一致。
状态转移方程为:dp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i-1][j-1];(Ps:i j 从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, INT_MAX));

for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
{
if(i==1&&j==1)
dp[i][j]=grid[i-1][j-1];
else
dp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i-1][j-1];
}

return dp[m]
;

}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: