package DynamicProgramming;/*** 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。*/
public class p64 {//要找到当前点到终点的最短距离,只需找到右边一点到终点的距离min1,与下边一点到终点的距离min2,取两者较小值并+自身值public int minPathSum(int[][] grid) {int MinSumSave[][]=new int[grid.length+1][grid[0].length+1];            //用于储存之前遍历的结果,比grid长宽大1是因为临界问题return MinSum(grid,0,0,MinSumSave);}//动态规划求解private int MinSum(int [][]grid,int i,int j,int MinSumSave[][]){if(i>=grid.length)return 9999;             //如果超过范围则返回最大值if(j>=grid[0].length)return 9999;if(i==grid.length-1&&j==grid[0].length-1)return grid[i][j];     //到了终点,返回终点值int min1,min2;if(MinSumSave[i+1][j]!=0){          //如果之前有算过就取之前的运算结果min1=MinSumSave[i+1][j];}else{min1=MinSum(grid,i+1,j,MinSumSave);MinSumSave[i+1][j]=min1;}if(MinSumSave[i][j+1]!=0){          //如果之前有算过就取之前的运算结果min2=MinSumSave[i][j+1];}else{min2=MinSum(grid,i,j+1,MinSumSave);MinSumSave[i][j+1]=min2;}return Math.min(min1,min2)+grid[i][j];}public static void main(String argv[]){p64 temp=new p64();int [][]grid={{1,3,1},{1,5,1},{4,2,1}};System.out.println(temp.minPathSum(grid));}
}

转载于:https://www.cnblogs.com/ming-szu/p/9004570.html

最小路径和--p64--动态规划相关推荐

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

    最小路径和(动态规划) 1. 题目描述 2. 题目分析 3. C语言实现 1. 题目描述 难度:中等 2. 题目分析 这道题目是62题.不同路径的延伸,解题思路基本一样的,是通过动态规划来实现的: - ...

  2. leetcode120. 三角形最小路径和(动态规划)

    **给定一个三角形,找出自顶向下的最小路径和.**每一步只能移动到下一行中相邻的结点上. 相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点. 例如, ...

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

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

  4. 动态规划算法--矩形最小路径和

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

  5. 三角形最小路径和(动态规划)

    原创公众号:bigsai 欢迎加入力扣打卡 文章已收录在 全网都在关注的数据结构与算法学习仓库 欢迎star 题目描述 力扣120原题 给定一个三角形 triangle ,找出自顶向下的最小路径和. ...

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

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

  7. [Leetcode][第120题][JAVA][三角形最小路径和][动态规划][递归]

    [问题描述][中等] [解答思路] 1. 动态规划思路一 自上而下 第 1 步:设计状态 f[i][j] 表示从三角形顶部走到位置 (i,j) 的最小路径和 位置(i,j) 指的是三角形中第 i 行第 ...

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

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

  9. 矩阵的最小路径和——动态规划

    题目描述: 给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和. 示例: [[1,3,5,9] ...

  10. 动态规划示例汇总-Java版(组合硬币、跳台阶、最小路径和、最长递增子序列、最长公共子序列、01背包问题、最小编辑代价)

    动态规划算法示例汇总-Java版 组合硬币 Java解题-暴力搜索 Java解题-记忆搜索 Java解题-动态规划(两种写法) 跳台阶 Java解题-暴力递归 Java解题-动态规划 矩阵最小路径和 ...

最新文章

  1. 【计算理论】上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 | 语法分析树 )
  2. servlet——登录练习(登录页面登录请求登录请求处理)
  3. Microsoft JET Database Engine 错误 #39;80004005#39;的解决方法
  4. 变相裁员??全员营销!程序员被要求卖房~
  5. mysql导出csv格式去除字段中的\n\r
  6. 记一次Java面试中遇到的三个问题及感悟!
  7. 【报告分享】2020中国企业数字化转型研究报告-清华大学.pdf(附下载链接)
  8. LInux之gz文件压缩/解压缩
  9. 我眼中的Visual Studio 2010架“.NET研究”构工具
  10. 今晚的比赛(2011.12.4)
  11. 6.6使用环境变量配置外部环境
  12. 再谈KMP/BM算法(I)
  13. 基于php061在线问卷调查系统
  14. 阿里云mysql读写分离实现_MySQL-Proxy实现MySQL读写分离
  15. 计算机无法启动bios,笔记本进不了bios的解决方法
  16. gitbook结合github写书及发布到gitbook上
  17. python处理pdf文件的程序_Python处理PDF文档-拆分合并
  18. ios安装fiddler证书
  19. Portapack应用开发教程(十一) 加入内置麦克风
  20. 团队和团伙的定义是什么

热门文章

  1. 机器学习笔记2 – sklearn之iris数据集
  2. 阅读笔记 火球UML大战需求分析4
  3. 编程基础C——常量,变量,运算符个人总结
  4. c++类型形参的实参的受限转换
  5. 测试Flex代码覆盖率工具---FlexCover
  6. .Net的 Web项目的打包过程
  7. java aqs实现原理_JAVA基础学习之-AQS的实现原理分析
  8. android底部导航栏网络请求有冲突,Android 自定义底部导航栏 CustomizeTabLayout(支持访问网络图片、本地图片)...
  9. Linux 安装 MySQL 数据库
  10. python编辑器中文字体倒立的_如何用Python+人工识别处理知乎的倒立汉字验证码...