其他分享
首页 > 其他分享> > LeetCode 64 最小路径和

LeetCode 64 最小路径和

作者:互联网

题目:

https://leetcode-cn.com/problems/minimum-path-sum/

题意:

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

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

思路:

简单动态规划,状态转移方程:
dp[i][j]=val[i][j]+min(dp[i1][j],dp[i][j1])dp[i][j] = val[i][j] + min(dp[i-1][j], dp[i][j-1])dp[i][j]=val[i][j]+min(dp[i−1][j],dp[i][j−1])

代码:

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

        for(int i = 0; i < n; i++) {
            for(int j = 0; j < m; j++) {
                int minval = INT_MAX;
                if(i-1 >= 0) {
                    minval = min(minval, grid[i-1][j]);
                }
                if(j-1 >= 0) {
                    minval = min(minval, grid[i][j-1]);
                }
                if(!(i == 0 && j== 0)) {
                    grid[i][j] += minval;
                }
            }
        }
        
        return grid[n-1][m-1];
    }
};

标签:val,minval,int,路径,grid,min,64,LeetCode,dp
来源: https://blog.csdn.net/jsszwc/article/details/87950957