文章目录

  • 题目
    • 题目详情
    • 示例
  • 解题思路
    • 思路
    • 动态规划小知识
    • 代码
    • 运行结果
    • 最佳方案

题目

题目详情

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

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

示例

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

解题思路

思路

  1. 根据这个题需要求出最短的一条,那么我们怎么会知道是哪一条最短呢
  2. 那么我们就需要比较,最后得出最短的路径
  3. 运用动态规划能很好的做出来

动态规划小知识

A * "1+1+1+1+1+1+1+1 =?" *A : "上面等式的值是多少"
B : *计算* "8!"A *在上面等式的左边写上 "1+" *
A : "此时等式的值为多少"
B : *quickly* "9!"
A : "你怎么这么快就知道答案了"
A : "只要在8的基础上加1就行了"
A : "所以你不用重新计算因为你记住了第一个等式的值为8!动态规划算法也可以说是 '记住求过的解来节省时间'"

由上面的小故事可以知道动态规划算法的核心就是记住已经解决过的子问题的解。
转载自csdn.

代码

class Solution:def minPathSum(self, grid):m,n=len(grid),len(grid[0])for _ in range(1,n):grid[0][_]+=grid[0][_-1]  #第一行的路径和for _ in range(1,m):grid[_][0]+=grid[_-1][0]  #第一列的路径和for i in range(1,n):for j in range(1,m):grid[j][i]+=min(grid[j-1][i],grid[j][i-1])   #然后分别一列一列的求出最短路径和return grid[m-1][n-1]     #最后一个就是求出的最小路径和if __name__ == "__main__":obj = Solution()s = [[1,3,1],[1,5,1],[4,2,1]
]obj.minPathSum(s)

运行结果

最佳方案

48ms

class Solution:   def minPathSum(self, grid: 'List[List[int]]') -> 'int':if not grid:return 0row = len(grid)col = len(grid[0])for i in range(1,row):grid[i][0] = grid[i-1][0] + grid[i][0]for j in range(1,col):grid[0][j] = grid[0][j-1] + grid[0][j]for i in range(1,row):for j in range(1,col):grid[i][j] = min(grid[i-1][j],grid[i][j-1]) + grid[i][j]return grid[row-1][col-1]

leetcode--最小路径和--python相关推荐

  1. leetcode最小路径和 (动态规划)python

    描述 给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径. 你在同一时间只能向下或者向右移动一步 样例 样例 1: 输入: [[1,3,1],[1,5,1],[4,2, ...

  2. 最小路径和Python解法

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

  3. 《LeetCode力扣练习》第64题 最小路径和 Java

    <LeetCode力扣练习>第64题 最小路径和 Java 一.资源 题目: 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为 ...

  4. LeetCode 64最小路径和65有效数字66加一

    原创公众号:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 关注后回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode打卡 52八皇后Ⅱ&53最大子序和& ...

  5. leetcode 64. 最小路径和(递归 / 动态规划解法图解)(Java版)

    题目 leetcode 64. 最小路径和 提示: m == grid.length n == grid[i].length 1 <= m, n <= 200 0 <= grid[i ...

  6. leetcode - 120. 三角形最小路径和

    120. 三角形最小路径和 ------------------------------------------ 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如 ...

  7. leetcode - 64. 最小路径和

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

  8. 动态规划——最小路径和(Leetcode 64)

    题目选自Leetcode 64.最小路径和 题目描述 解题思路 前言: 解题的方法是用动态规划~ 从数据范围可以看出,n.m最多就是200×200的大小,所以dp数组就开201 那么,怎么进行动态规划 ...

  9. leetcode 思路——64. 最小路径和——174. 地下城游戏

    leetcode 思路--64. 最小路径和--174. 地下城游戏 64. 最小路径和 174. 地下城游戏 64. 最小路径和 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角 ...

  10. leetcode算法题--最小路径和

    原题链接:https://leetcode-cn.com/problems/minimum-path-sum/ 相关题目:不同路径 动态规划: dp[i][j]表示走到(i,j)点的最小路径和 状态转 ...

最新文章

  1. SQL反模式笔记7——多列属性
  2. 动态规划解题套路框架
  3. java信用分秒杀系统设计思路,秒杀系统设计思路
  4. python二维高斯分布生成_python 多维高斯分布数据生成方式
  5. 怎么解决tomcat占用8080端口问题
  6. oppoJava面试题,java声明全局变量的关键字
  7. 外星人bios按f2调风扇_刷完BIOS出现Reboot and select proper boot device的解决方法
  8. jdbc远程连接mysql url_jdbc连接mysql之url书写
  9. 【报告分享】第七次全国人口普查主要数据情况报告.pdf(附下载链接)
  10. JSFinder自动化脚本一键批量处理URL(附自动执行脚本带whatweb筛选)
  11. 电脑上的字体安装教程
  12. 中国神话中的诸神辈分如何排
  13. php月份转英文缩写,将日期转换成时间戳 strtotime
  14. double cbrt(double x)
  15. 重磅!Waymo首席执行官离职,自动驾驶商业化打上“问号”
  16. Number Guessing
  17. 请不要在该奋斗的年纪选择了安逸
  18. 一步一动在PVE安装黑群晖
  19. 虚拟磁盘服务错误: 卷大小太大。
  20. 购买的wemall6.0源码商城系统分享,百度云盘易失效,速取

热门文章

  1. Magento开发的特点有哪些?
  2. 在linux环境下重启oracle数据库,解决密码过期的问题
  3. Golang中Buffer高效拼接字符串以及自定义线程安全Buffer
  4. DOMContentLoaded 与onload区别以及使用
  5. JavaScript Switch 语句
  6. 出色管理者的时间管理
  7. iOS处理高并发量的数据请求和数据集合的对应关系
  8. 实现nginx上配置免费证书Let's Encrypt
  9. 可构造样式表 - 通过javascript来生成css的新方式
  10. windows服务搭建及命令总结