难度:中等
频次:54

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



解题思路:动态规划
注意:

  • 为什么使用动态规划呢?—>求最值,并且不求过程,有很明显的状态转移方程
  • 主要把情况分为4种情况
    • 在左边的边界的时候,即j==0的情况,总和应该为上面的总和+该位置的值
    • 在上边的边界的时候,即i==0的时候,总和应该为左边的总和+该位置的值
    • 在左边的边界+在上边边界的时候,即i0&&j0的时候,总和为该位置的值即起点的值
    • 其他的情况 ,都有两种可能性,即取两种可能性的最小值+该位置的值
  • 如果为了追求节省空间,也可以把步设置额外的dp,直接把存放在grid里

代码:

class Solution {public int minPathSum(int[][] grid) {int col=grid[0].length;int row=grid.length;int[][] dp=new int[row][col];for(int i=0;i<row;i++){for(int j=0;j<col;j++){if(i==0&&j==0) dp[i][j]=grid[i][j];else if(i==0) dp[i][j]=dp[i][j-1]+grid[i][j];else if(j==0) dp[i][j]=dp[i-1][j]+grid[i][j];else {dp[i][j]=Math.min(dp[i-1][j],dp[i][j-1])+grid[i][j];}}}return dp[row-1][col-1];}
}

leetcode 64. 最小路径和相关推荐

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

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

  2. leetcode - 64. 最小路径和

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

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

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

  4. LeetCode 64. 最小路径和(DP)

    文章目录 1. 题目信息 2. 解题 1. 题目信息 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示 ...

  5. Leetcode 64. 最小路径和 -- DP算法

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

  6. 93. Leetcode 64. 最小路径和 (动态规划-路径规划)

    步骤一.确定状态: 1.确定原问题中变化的变量个数 2.考虑最后一步 右下角坐标设为(m-1,n-1) 那么前一步一定是在(m-2,n-1)或者(m-1,n-2) 步骤二.推断状态方程: f[i][j ...

  7. Leetcode 64 最小路径和 (每日一题 20210721)

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

  8. LeetCode 64 最小路径和

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

  9. LeetCode 64.最小路径和(动态规划)

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

最新文章

  1. 在XML布局里给View设置点击事件
  2. ajax查找错误信息
  3. CStatic 控件设置文本,不能重回问题
  4. github上可供新手阅读和玩耍的java项目有哪些??
  5. 深入理解IIS的多线程工作机制
  6. swfupload 进度条 提示 中文乱码
  7. MySQL存储过程中的3种循环
  8. js字符串(String)转多维数组(Array) - 代码篇
  9. django-xadmin隐藏菜单不显示
  10. 【Hoxton.SR1版本】Spring Cloud Stream消息驱动
  11. 输入身份证自动回填地址,年龄,个人详细信息
  12. JS实现16进制转字符串
  13. android expandablelistview 高度自适应,计算ExpandableListView高度
  14. 【Zeekr_Tech】初谈我们共同的目标 NPDS + Agile
  15. 基于matlab的运动目标检测
  16. # 冰冻三尺非一日之寒。
  17. [ZJOI2007]矩阵游戏(二分图匹配、匈牙利算法)
  18. 洛谷 P2888 [USACO07NOV] 牛栏Cow Hurdles
  19. 第九届全球云计算大会·中国站圆满落幕甬城,赋能双循环“新”发展!
  20. oracle 19c dbua升级时ORA-20001报错的分析

热门文章

  1. VC++ 获取文件属性创建时间、修改时间和访问时间
  2. MySQL Server 5.0 和 6.0 安装指南[转]
  3. [转] Web前端优化之 内容篇
  4. Java技术在多数据库系统中的应用研究
  5. 运行gulp项目报错:AssertionError: Task function must be specified。
  6. POJ 1195 Mobile phones
  7. 【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本...
  8. iOS使用WSDL2ObjC工具调用Webservice接口
  9. div+css 和 xhtml+css是一回事么?
  10. 运维人员应该掌握哪些常用技术