力扣热门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];
    }
}
相关推荐
一去不复返的通信er14 小时前
力扣-图论-岛屿数量
算法·leetcode·图论
程序 代码狂人17 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
HDU-Dade17 小时前
【校招笔试真题】简要介绍 Self-Attention 的前沿算法
人工智能·算法
Xin77018 小时前
LeetCode 79. 单词搜索(DFS 回溯法)
leetcode
小郎君65819 小时前
Vue keep-alive 切标签后滚动位置回顶?因为 onDeactivated 里读到的 scrollTop 是 0
算法
邵奈一20 小时前
GPT-6.1 Terra速度是Sol的3倍,价格减半
算法
RaaS10020 小时前
Node.js Brotli RCE 漏洞自查指南:fetch、undici、axios 都在影响面,三分钟确认你的版本
人工智能·深度学习·算法
shehuiyuelaiyuehao20 小时前
算法56,重排链表
数据结构·算法·链表
qq_4523962321 小时前
第四篇:《索引原理与实战:B-tree、Hash、GIN、GiST、BRIN》
算法·哈希算法·gin