1 Star 0 Fork 0

luobg01/PFJ_coding

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
code045_minPathSum.h 1.35 KB
一键复制 编辑 原始数据 按行查看 历史
luobg01 提交于 2024-01-08 14:51 . 新增题目leetcode64 最小路径和
//
// Created by 罗炳国 on 2024/1/8.
//
#ifndef PFJ_CODE045_MINPATHSUM_H
#define PFJ_CODE045_MINPATHSUM_H
#include "commonHeader.h"
/**
* 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
* 说明:每次只能向下或者向右移动一步。
* 64.https://leetcode.cn/problems/minimum-path-sum/description/
* */
class code045_minPathSum {
public:
int minPathSum(vector<vector<int>>& grid) {
int n = grid.size();
int m = grid[0].size();
vector<int> dp(m, 0);
dp[m - 1] = grid[n - 1][m - 1];
for (int i = m - 2; i >= 0; i--)
dp[i] = grid[n - 1][i] + dp[i + 1];
for (int i = n - 2; i >= 0; i--) {
dp[m - 1] = dp[m - 1] + grid[i][m - 1];
for (int j = m - 2; j >= 0; j--)
dp[j] = grid[i][j] + min(dp[j], dp[j + 1]);
}
return dp[0];
}
void test() {
vector<vector<int>> grid {{1, 3, 1},{1, 5, 1},{4, 2, 1}};
int ans = minPathSum(grid);
std::cout << ans << endl;
grid = {{1, 2, 3}, {4, 5, 6}};
ans = minPathSum(grid);
std::cout << ans << endl;
grid = {{1, 2, 5}, {3, 2, 1}};
ans = minPathSum(grid);
std::cout << ans << endl;
}
};
#endif//PFJ_CODE045_MINPATHSUM_H
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/luobg01/pfj_coding.git
git@gitee.com:luobg01/pfj_coding.git
luobg01
pfj_coding
PFJ_coding
master

搜索帮助