【Leetcode】64. 最小路径和

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

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

示例 1:

输入:grid = [[1,3,1],[1,5,1],[4,2,1]]
输出:7
解释:因为路径 1→3→1→1→1 的总和最小。

示例 2:

输入:grid = [[1,2,3],[4,5,6]]
输出:12

提示:

  • m == grid.length
  • n == grid[i].length
  • 1

思路:

  • 动态规划
  • 特判第一个位置
  • 如果某个位置在第一行,那么只能从左面走过来,不能从上面走过来;如果某个位置在第一列,那么只能从上面走过来,不能从左面走过来。除此以外的点均是从上面走过来或者从左面走过来。
  • 从上面走过来: dp[i][j] = min(dp[i][j], dp[i - 1][j] + grid[i][j])
  • 从左面走过来: dp[i][j] = min(dp[i][j], dp[i][j - 1] + grid[i][j])

code:

class Solution {
public:
    int minPathSum(vector<vector<int>>& grid) {
        int n = grid.size(), m = grid[0].size();
        const int N = 210, INF = 1e9;
        int dp[N][N];
        for (int i = 0; i < n; i ++){
            for (int j = 0; j < m; j ++){
                // &#x7279;&#x5224;&#x7B2C;&#x4E00;&#x4E2A;&#x4F4D;&#x7F6E;
                if (i == 0 && j == 0){
                    dp[i][j] = grid[i][j];
                } else {
                    dp[i][j] = INF;
                    // &#x7279;&#x5224;&#x7B2C;&#x4E00;&#x884C;
                    if (i > 0){
                        dp[i][j] = min(dp[i][j], dp[i - 1][j] + grid[i][j]);
                    }
                    // &#x7279;&#x5224;&#x7B2C;&#x4E00;&#x5217;
                    if (j > 0){
                        dp[i][j] = min(dp[i][j], dp[i][j - 1] + grid[i][j]);
                    }
                }

            }
        }
        return dp[n - 1][m - 1];
    }
};
</vector<int>

Original: https://www.cnblogs.com/Timesi/p/16667463.html
Author: 顾北清
Title: 【Leetcode】64. 最小路径和

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578205/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • [云计算]TCA云架构-思维导图

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/Skybiubiu/p/15962992.htmlAut…

    Linux 2023年6月13日
    0134
  • 2020年12月-第02阶段-前端基础-CSS Day06

    CSS Day06 定位(position) *理解 能说出为什么要用定位能说出定位的4种分类能说出四种定位的各自特点能说出我们为什么常用子绝父相布局 *应用 能写出淘宝轮播图布局…

    Linux 2023年6月8日
    0137
  • 环境变量

    环境变量,简单来说就是描述程序执行环境的一组变量。 1、什么程序执行环境? 环境已经基础词汇呢,我们通常都用环境去解释别的词,想一下,日常生活怎么用环境。你到一个新地方,我问你环境…

    Linux 2023年6月6日
    0129
  • Java基础 String

    String类 字符串是一个特殊的对象。 字符串一旦初始化就不可以被改变。 String s="abc"; 特点: String构造函数 主要几个String构…

    Linux 2023年6月14日
    0137
  • 测试执行和软件缺陷

    测试执行 1.基本概念 测试执行就是执行测试用例、提交Bug 单、测试结论的评估和总结等一系列测试活动,测试执行不仅包含测试用例的执行,还包括其它测试活动. 2.注意事项 (1) …

    Linux 2023年6月7日
    073
  • python_base

    1.查看可用函数dir() dir()可以用于查看某个包中可以使用的对象 import math dir(math) 2.查看使用帮助help() 用于查看帮助,用法是具体到函数名…

    Linux 2023年6月7日
    0104
  • 【原创】Linux中断子系统(二)-通用框架处理

    背景 Read the fucking source code! –By 鲁迅 A picture is worth a thousand words. –…

    Linux 2023年6月8日
    0100
  • Linux中touch和mkdir、vi的区别

    touch:创建空白文档,新增文件 mkdir:创建一个目录 vi:同touch一样,都是创建一个空白文档 举个栗子:touch w;此时创建一个w的空白文档;file w 可以查…

    Linux 2023年6月13日
    086
  • python装饰器(新年第一写)

    祭奠碌碌无为的2018,想想其实也不算碌碌无为,至少我还搞懂了装饰器,写了一堆有用没用的玩意 原来觉得装饰器挺难的,直到2018年的最后几天,突然就明白了,难道这就是传说中的开天聪…

    Linux 2023年6月6日
    0105
  • Netty-如何写一个Http服务器

    前言 动机 最近在学习Netty框架,发现Netty是支持Http协议的。加上以前看过Spring-MVC的源码,就想着二者能不能结合一下,整一个简易的web框架(PS:其实不是整…

    Linux 2023年6月7日
    0105
  • Django中信号的使用

    信号种类及用法 Django中提供了”信号调度”,用于在框架执行操作时解耦. 一些动作发生的时候,系统会根据信号定义的函数执行相应的操作 Django中内置…

    Linux 2023年6月14日
    0106
  • 实验一 密码引擎-4-国䀄算法交叉测试

    任务详情 0 2人一组,创建一个文件,文件名为小组成员学号,内容为小组成员学号和姓名1 在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码…

    Linux 2023年6月8日
    0104
  • Ubuntu修改静态IP

    转载自:https://www.cnblogs.com/xwgcxk/p/10560181.html 第一步:先获取网卡名称,输入ifconfig,如下图,我们的网卡名称为 ens…

    Linux 2023年6月8日
    081
  • podman(无根用户管理podman)

    用户操作在允许没有root特权的用户运行Podman之前,管理员必须安装或构建Podman并完成以下配置cgroup V2Linux内核功能允许用户限制普通用户容器可以使用的资源,…

    Linux 2023年6月7日
    090
  • 大数库GMP测试

    任务详情 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务 用自己8位学号建两个文件夹xxxxxxxxsrc,xxxxxxxx,到GMP官网htt…

    Linux 2023年6月8日
    0101
  • ASP.NET Core 2.2 : 二十六. 应用JWT进行用户认证及Token的刷新

    本文将通过实际的例子来演示如何在ASP.NET Core中应用JWT进行用户认证以及Token的刷新方案。(ASP.NET Core 系列目录) 一、什么是JWT? JWT(jso…

    Linux 2023年6月7日
    0126
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球