力扣热门100题之最小路径和

核心思路

  • 只能右 / 下
  • 到达 (i,j) 的最小和 = min (上面来,左边来) + 当前格子值
  • 第一行、第一列要先累加好

转移方程

复制代码
dp[i][j] = Math.min(dp[i-1][j], dp[i][j-1]) + grid[i][j];

通俗解释

  1. 第一列:只能从上边走下来,所以一路累加
  2. 第一行:只能从左边走过来,一路累加
  3. 中间格子
    • 从上面来的代价:grid[i-1][j]
    • 从左边来的代价:grid[i][j-1]
    • 小的那个,再加上当前格子数值

完整代码实现:

java 复制代码
class Solution {
    public int minPathSum(int[][] grid) {
        int m = grid.length;
        int n = grid[0].length;

        //第一列累加
        for(int i = 1;i<m;i++){
            grid[i][0] += grid[i-1][0];
        }
        //第一行累加
        for(int j = 1;j<n;j++){
            grid[0][j] += grid[0][j-1];
        }

        //中间:取上,左较小值 + 当前值
        for(int i = 1;i<m;i++){
            for(int j =1;j<n;j++){
                grid[i][j] += Math.min(grid[i-1][j],grid[i][j-1]);
            }
        }
        return grid[m-1][n-1];
    }
}
相关推荐
leo__52019 小时前
随机接入退避算法过程模拟实现
网络·算法
-To be number.wan19 小时前
算法日记 | STL- sort排序
c++·算法
玖釉-19 小时前
Vulkan 中 Shader 的 vert、frag、mesh、comp 全面解析:作用、关系、特点与工程实践
开发语言·c++·windows·算法·图形渲染
智者知已应修善业19 小时前
【51单片机2个外部中断切换LED花样】2024-1-3
c++·经验分享·笔记·算法·51单片机
8Qi819 小时前
LeetCode 31:下一个排列(Next Permutation)—— 完整题解笔记 ✅
笔记·算法·leetcode·指针·思维·排列
春日见20 小时前
五分钟入门强化学习DDPG
大数据·人工智能·算法·机器学习·计算机视觉
vivo互联网技术20 小时前
ICLR 2026 | LiveMoments 用参考图引导的扩散模型提升重选封面帧画质
人工智能·算法·aigc技术探索
落羽的落羽20 小时前
【算法札记】练习 | Week5
linux·服务器·c++·人工智能·计算机网络·算法·哈希算法
玖釉-20 小时前
编辑距离(Edit Distance)——从字符串相似度到动态规划经典模型
算法·leetcode·动态规划