leetcode 64. Minimum Path Sum

来源:互联网 发布:数据库视频下载 编辑:程序博客网 时间:2024/06/16 01:32

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.

Example 1:

[[1,3,1], [1,5,1], [4,2,1]]
Given the above grid map, return 7. Because the path 1→3→1→1→1 minimizes the sum.


明显动态规划

class Solution {public:    int minPathSum(vector<vector<int>>& grid)     {        int row = grid.size();        int col = grid[0].size();                     for (int i = 1; i < row; i++)            grid[i][0] += grid[i-1][0];        for (int i = 1; i < col; i++)            grid[0][i] += grid[0][i-1];                for(int i = 1; i < row; i++)        {            for(int j = 1; j < col; j++)            {                grid[i][j] += min(grid[i][j-1], grid[i-1][j]);            }        }                 return grid[row-1][col-1];    }};