64. 最小路径和

给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

说明:每次只能向下或者向右移动一步。

思路:
动态规划?递推
代码:

class Solution {
public:
    int minPathSum(vector<vector<int>>& grid) {
        const int m=grid.size();
        const int n=grid[0].size();

        for(int i=1;i<m;i++){
            grid[i][0]=grid[i][0]+grid[i-1][0];
        }
        for(int i=1;i<n;i++){
            grid[0][i]=grid[0][i]+grid[0][i-1];
        }

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

        return grid[m-1][n-1];

    }
};
posted @ 2022-11-11 19:34  ImreW  阅读(12)  评论(0编辑  收藏  举报