每天一道leetcode64-最小路径和

矩阵的最小路径和(Java) 题目: 给定一个矩阵m,从左上角开始每次只能向右或者向下走,最后达到右下角的位置,路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和。 举例: 给定的m如下: 1 3 5 9 8 1 3 4 5 0 6 1 8 8 4 0 路径1,3,1,0,6,1,0是所有路径中路径和最小的,所以返回12。 代码实现: 方法一: /** * 借助m*n的辅助空间来解决问题 ... 阅读详情

微信又改版了,为了方便第一时间看到我的推送,请按照下列操作,设置“置顶”:点击上方蓝色字体“程序员乔戈里”-点击右上角“…”-点击“设为星标”。加星标不迷路!

考试结束,班级平均分只拿到了年级第二,班主任于是问道:大家都知道世界第一高峰珠穆朗玛峰,有人知道世界第二高峰是什么吗?正当班主任要继续发话,只听到角落默默想起来一个声音:”乔戈里峰”

前言

2018.11.14号打卡明天的题目leetcode442:

题目

每天一道leetcode64-最小路径和这里说一声抱歉)

题目详述

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

题目详解

思路

  • 对于矩阵中的任意一个位置,都可以通过这个位置的上一个位置或者左边的这一个位置移动一步 来到达这个位置(因为每次只能向下或者向右移动一步。);

  • 对于矩阵中的任意一个位置(除去边界位置),dp(i,j) = min(dp(i-1,j),dp(i,j-1)) + grid(i,j)得到,dp(i-1,j)就是(i,j)左边的这一个点,dp(i,j-1)就是(i,j)的上一个点,比较这两个数的大小,取最小的加上grid(i,j)就是(i,j)这个位置的最小值

  • 边界情况单独考虑,对于第一行和第一列,第一行只能是由左边的一个位置移动得来,第一列只能由它上面的位置移动得到(因为每次只能向下或者向右移动一步。);

代码

 1class Solution {
 2    public int minPathSum(int[][] grid) {
 3        int rows = grid.length;
 4        int cols = 0;
 5        if(rows != 0)
 6            cols = grid[0].length;
 7        int [][] equation = new int[rows][cols];
 8        for(int i=0;i<rows;i++)
 9        {
10            for(int j=0;j<cols;j++)
11            {
12                if(i == 0 && j ==0)
13                {
14                    equation[i][j] = grid[0][0];
15                }else if(i == 0)
16                {
17                    equation[i][j] = equation[i][j-1] + grid[i][j];
18                }else if(j == 0)
19                {
20                    equation[i][j] = equation[i-1][j] + grid[i][j];
21                }else{
22                    if(equation[i][j-1] < equation[i-1][j])
23                        equation[i][j] = equation[i][j-1] + grid[i][j];
24                    else
25                        equation[i][j] = equation[i-1][j] + grid[i][j];
26                }
27            }
28        }
29        return equation[rows-1][cols-1];
30    }
31}

代码讲解

  • 3-7行 就是新建一个二维数组大小和grid一样,这个数组的每一个位置(i,j)用来记录到达grid(i,j)这里的路径和的最小值

  • 8-10行 两次循环,用来遍历整个数组grid的;

  • 12-14行 就是矩阵的左上角就是自己本身了~

  • 15-17行 就是矩阵的第一行,就是用(i-1,j)位置的数加上grid(i,j)的值,得到(i,j)的位置的最小距离

  • 18-20行 就是矩阵的第一列,只能由上一个位置到达(i,j)

  • 21-25行 就是dp(i,j) = min(dp(i-1,j),dp(i,j-1)) + grid(i,j)这个状态方程的实现 上面思路已经说过

结束语

2018.11.14号打卡

作者乔戈里亲历2019秋招,哈工大计算机本硕,百度准入职java工程师,欢迎大家关注我的微信公众号:程序员乔戈里,公众号有3T编程资源,以及我和我朋友(准入职百度C++工程师)在秋招期间整理的近200M的面试必考的java与C++面经,并有每天一道leetcode打卡群与技术交流群,欢迎关注。

Win11系统下Notepad++右键菜单失效?3种修复方法实测有效(附注册表备份指南) 本文针对Windows 11系统中Notepad++右键菜单失效的常见问题,提供了三种经过实测有效的修复方法。核心解决方案包括使用官方NppShell.dll重新注册、手动修复注册表项以及系统级问题排查,并详细说明了操作前的注册表备份指南,确保修复过程安全可靠。 阅读详情

相关推荐

从数据到图片:手把手构建FMCW雷达人体行为识别数据集(行走、跌倒、喝水等6类动作)

本文详细解析了如何利用FMCW雷达构建人体行为识别数据集,涵盖行走、跌倒、喝水等6类动作。通过多普勒特征可视化、图像标准化处理和自动化流水线设计,将原始雷达信号转化为高质量时频图像数据集,为智能家居和健康监护等应用提供可靠数据支持。

weixin_30706691的博客 384

LeetCode 120. Triangle (三角形最小路径和)详解

题目详情 给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)

阿里武的技术博客 4356

Android应用之【巧妙隐藏桌面图标的进阶方案】

本文详细探讨了Android应用中隐藏桌面图标的进阶方案,解决了传统方法在Android 10及以上版本中出现的黑色图标残留问题。通过Intent-Filter配置和厂商适配技巧,实现子应用真正隐身,同时确保主应用正常启动。适用于企业工具套件、模块化系统等场景,提升用户体验和安全性。

weixin_28363123的博客 508

64. 最小路径和

给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 分析:dp转移方程为: dp[i][j] = min(dp[i][j - 1], dp[...

码奴生来就只知道前进 2110

从SolidWorks到Simscape:URDF导出模型错位的5个常见原因及修复方法

本文深入分析了从SolidWorks导出URDF模型到Simscape时出现模型错位的5个常见原因,包括坐标系定义、RPY角陷阱、轴方向统一、质量属性导出和层次结构错乱,并提供了详细的修复方法和实战技巧,帮助工程师高效解决模型错位问题。

weixin_30664051的博客 442

从FOC到你的无人机:深入浅出讲透Clark/Park变换在无刷电机控制中的核心作用

本文深入解析Clark变换与Park变换在无刷电机控制中的核心作用,揭示其如何将三相交流电转换为旋转坐标系下的直流量,实现无人机电机的高效精准控制。通过STM32硬件加速和工程实践案例,展示这对数学变换如何成为FOC算法的神经中枢,大幅提升系统响应速度和能效表现。

weixin_42628941的博客 169

动态规划--最小路径和(Minimum Path Sum)

原题   Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.    Note: You can only move either down or

限量发行的专栏 1024

ANSYS Help USER300

USER 300概述单元描述输入数据假设与限制条件 概述 单元描述 Mechanical APDL提供了一种方便的方法来创建自定义的单元,命名为USER300,可以创建几乎任何单元类型。 UserElem子程序为Mechanical APDL在单元类型创建上提供了一个接口,可传递用户自定义单元创建时所需的所有数据,然后从自定义单元返回所有数据和结果,以更新数据库和文件。因为通过接口可以访问数据库和文件信息,所以很少需要了解Mechanical APDL数据库程序和文件结构。该接口还提供了获取Mechanic

weixin_47019765的博客 2235

Leetcode刷题记录——120. 三角形最小路径和

这个问题十分复杂。 若考虑自上而下的方向,因为分叉只能考正下方、右下方两个数字, 导致最终的分叉只能落到一个局部分叉中,这就可能导致有些隐秘点不会被找到。 如: 1000 999 998 997 996 995 1 994 993 992 若考虑全局最优,则考虑自下而上的动态规划方法。 先不考虑整个复杂问题,我们尝试求一个局部三角形的关系 如对一...

1996MZH的博客 179

uniapp(全端兼容) - 最新详细实现支付键盘功能组件,从底部弹出数字键盘输入支付密码进行付款交互效果,自定义支付密码键盘仿微信、支付宝支付键盘,1~9密码数字键盘,电商支付(详细示例代码复制运行

uniapp,微信小程序,自定义数字键盘,输入支付密码的键盘组件,uniapp小程序如何实现从底部弹出输入支付密码自定义键盘功能,uniapp小程序密码支付键盘组件插件,自定义数字键盘输入页面,怎么封装底部弹窗自定义数字键盘用于输入支付密码,uniapp小程序仿类似电商支付密码输入模态框,uniapp微信小程序平台实现自定义支付密码键盘,uniapp 密码支付,数字键盘,安全键盘,交易键盘,交易密码,交易密码输入框,uniapp自定义支付键盘: uniapp自定义支付键盘,uniapp小程序端实现键盘输入支

✅ 精选推荐文章 2906

uniapp - [微信小程序] 实现点击预览各种文件 pdf文档、视频mp4、mp3音乐、图片图像、word/excel/ppt 等,uniapp小程序文件预览功能(详细示例代码,一键复制开箱即用)

uniapp,uniapp微信小程序,支付宝小程序平台端,uniapp实现文件在线预览,uniapp微信小程序怎么实现预览视频mp4,mp3音乐,图片,office文档,小程序平台如何在线预览word/excel/ppt文档,uniapp实现小程序端的文件查看功能,uniapp小程序端实现pdf文件预览,uniapp纯前端预览PDF、DOC、DOCX、图片、视频,uni-app文档、图片预览查看,uniapp文档预览功能,uniapp小程序端文件预览,uniapp小程序平台纯前端解析word,pdf,xls

✅ 精选推荐文章 1万+

每天一道leetcode:64.最小路径和

今日份题目:64.最小路径和

qq_63349644的博客 128

YOLOv11改进,YOLOv11添加ASFF检测头,并添加小目标检测层(四头检测),适合目标检测、分割等任务,全网首发

YOLOv11改进,YOLOv11添加ASFF检测头,并添加小目标检测层(四头检测),适合目标检测、分割等任务,全网首发

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 4735

【LeetCode:64】最小路径和(Java)

给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输入:grid = [[1,2,3],[4,5,6]]解释:因为路径 1→3→1→1→1 的总和最小。说明:每次只能向下或者向右移动一步。

dawn191228的博客 1323

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【LeetCode】64. 最小路径和

摘要 本文解决的是在m×n网格中寻找从左上角到右下角的最小路径和问题,其中移动方向仅限向右或向下。通过动态规划方法,定义状态dp[i][j]表示到达(i,j)的最小路径和,状态转移方程为dp[i][j] = grid[i][j] + min(dp[i-1][j], dp[i][j-1])。文章详细分析了二维DP、一维DP(空间优化)和原地修改三种解法,对比了它们的时间复杂度(均为O(mn))和空间复杂度(分别为O(mn)、O(n)和O(1))。关键实现技巧包括边界条件处理、DP表初始化和状态转移,并提供了对

qq_32019341的博客 896

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

LeetCode 64. 最小路径和 | Python

使用动态规划的思路,解决 LeetCode 《64. 最小路径和》 问题

"大梦三千秋的博客 1105

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

力扣LeetCode: 64 最小路径和

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

weixin_73982851的博客 515

LeetCode第64题_最小路径和

给定一个包含非负整数的m x n网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。

qq_40263592的博客 1273

【动态规划】| 路径问题之最小路径和 力扣64

动态规划中的经典问题之路径问题,本题和前两道题有一定差异,体现在初始化方面,本文从五个方面进行解析这个题目,分析算法原理以及最后的代码编写,

inight的博客 1434

【算法题】64. 最小路径和-力扣(LeetCode)

这两个要求分别蕴藏着每一步与上一步或者上一步之间的关系。 而上一步与下一步有着联系,我们可以比较容易的想到这题可以用到动态规划。 而动态规划的核心步骤就是找到状态转移方程,而状态转移方程就隐藏在这些要求之中

Janium的博客 761

LeetCode 力扣 64. 最小路径和

题目描述(中等难度) 依旧是62题的扩展,这个是输出从左上角到右下角,路径的数字加起来和最小是多少。 依旧在62题代码的基础上改,大家可以先看下 62 題。 解法一 递归 62 题中我们把递归 getAns 定义为,输出 (x,y)到 (m ,n ) 的路径数,如果记做 dp[x][y]。 那么递推式就是 dp[x][y] = dp[x][y 1] dp[x 1][y]。 这道题的话,把递归...

wind_liang的博客 320

LeetCode 64. 最小路径和

LeetCode 1363. 形成三的最大倍数 题目来源 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/minimum-path-sum/ 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题目描述 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入: [ [1,3,1], [1,5,1], [4,2,1]

青耕 394

LeetCode 64. 最小路径和(DP)

文章目录1. 题目信息2. 解题 1. 题目信息 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 来源:力扣(LeetCode) 链接:https:...

Michael是个半路程序员 1341

LeetCode 64最小路径和

LeetCode 64最小路径和 题目简述:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 输入: [131151421] \left[\begin{matrix}1 & 3 & 1 \\1 & 5 & 1 \\4 & 2 & 1\end{matrix} \right] ⎣⎡​114​352​111​⎦⎤​ 输出:7 解释:路径 1→3→1→1→1 的总和最小 思路:动态规划O(n

XBlog 297

力扣64.最小路径和

给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。即dp[i][j]是从左边临近位置走来的路径花费和从上边临近位置走来的路径花费比较中的最小者。输入:grid = [[1,3,1],[1,5,1],[4,2,1]]根据此状态转移方程,并给dp[0][0]赋初始值为grid[0][0]以数组dp[i][j]表示:走到位置i,j的最小路径花费。输入:grid = [[1,2,3],[4,5,6]]解释:因为路径 1→3→1→1→1 的总和最小。

weixin_45863060的博客 492

Leetcode64. 最小路径和(C语言)

Leetcode64. 最小路径和(C语言) 算法-动态规划(矩阵路径):算法与数据结构参考 题目: 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。每次只能向下或者向右一步,例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 思路: 动态规划。每个位置存储起点到当前位置的路径和最小值。 注意行列下标 代码:...

jeanlu的博客 1689
上一篇: 每天一道leetcode56-合并区间
下一篇: 每天一道leetcode442-数组中重复的数据
程序员乔戈里
博客等级 码龄8年 1057粉丝 220原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值