文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
最小路径和
解题思路
动态规划。
从左上角起始点到右下角终点不断累加找到最短路径。
代码实现
const minPathSum = (grid: number[][]): number => {
const m: number = grid.length,
n: number = grid[0].length;
const dp: number[][] = new Array(m).fill(0).map((_) => new Array(n).fill(0));
dp[0][0] = grid[0][0];
for (let i = 0; i < m; i++) {
for (let j = 0; j < n; j++) {
switch (true) {
case i === 0 && j !== 0:
dp[i][j] = grid[i][j] + dp[i][j - 1];
break;
case i !== 0 && j === 0:
dp[i][j] = grid[i][j] + dp[i - 1][j];
break;
case i !== 0 && j !== 0:
dp[i][j] = grid[i][j] + Math.min(dp[i - 1][j], dp[i][j - 1]);
break;
default:
return;
}
}
}
return dp[m - 1][n - 1];
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论