leetcode---minimum-path-sum---dp

来源:互联网 发布:java.util.calendar 编辑:程序博客网 时间:2024/05/18 20:07

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.

class Solution {public:    int minPathSum(vector<vector<int> > &grid)     {        int n = grid.size();        if(n == 0)            return 0;        int m = grid[0].size();        if(m == 0)            return 0;        vector<vector<int>> dp(n, vector<int>(m, 0));        dp[0][0] = grid[0][0];        for(int i=0; i<n; i++)        {            for(int j=0; j<m; j++)            {                if(i == 0 && j > 0)                {                    dp[i][j] = dp[i][j-1] + grid[i][j];                }                else if(j == 0 && i > 0)                {                    dp[i][j] = dp[i-1][j] + grid[i][j];                }                else if(i > 0 && j > 0)                    dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + grid[i][j];            }        }        return dp[n-1][m-1];    }};
原创粉丝点击