Java 动态规划 64. 最小路径和

这篇具有很好参考价值的文章主要介绍了Java 动态规划 64. 最小路径和。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java 动态规划 64. 最小路径和,动态规划,算法,java

Java 动态规划 64. 最小路径和,动态规划,算法,java 

代码展示:

 dp[i][j]=Math.min(dp[i-1][j],dp[i][j-1])+grid[i-1][j-1];

 该题可以通过动态规划解决,动态规划的题根据以下的5大步骤便可轻松解决

        1.状态表示

                题目要求我们计算从起点到最后一个位置的最小路径和,我们可以创建一个dp表,dp【i】【j】表示从起点到【i,j】位置的最小路径和

        2.状态转移方程

                我们从最近的一步开始分析,我们有两种方法可以到达【i,j】位置,要么从【i-1,j】位置向下移动,要么从【i,j-1】位置向右移动,我们要如何选择呢,由于我们需要求出的是最小路径和,所以我们可以比较到达【i-1,j】和【i,j-1】的最小路径和,即dp【i-1,j】和dp【i,j-1】,从较小的那个位置出发到【i,j】位置即加上【i,j】位置的数值,便是【i,j】的最小路径和,所以我们可以得到状态转移方程: dp[i][j]=Math.min(dp[i-1][j],dp[i][j-1])+grid[i-1][j-1];

        3.初始化

                我们可以通过增加辅助结点的方式来辅助初始化,在该题中我们创建的dp数值相比于grid数组,我们要多加一行一列,而此时我们要注意,

        (1).辅助结点中添加的值要保证后续的数据添加是正确的,根据对该题的分析,我们需要将第一行和第一列除了[0,1]位置和[1.0]位置,其他位置都设为int数据的最大值

        (2).下标的映射关系,此时由于添加了一行一列,所以dp[i][j]对应grid[i-1][j-1]

        4.填充数组

                根据状态转移方程填充数组

        5,返回值

                终点位置是【m,n】,所以要返回dp[m][n]文章来源地址https://www.toymoban.com/news/detail-545668.html

到了这里,关于Java 动态规划 64. 最小路径和的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MATLAB源码-第64期】matlab基于DWA算法的机器人局部路径规划包含动态障碍物和静态障碍物。

    动态窗口法(Dynamic Window Approach,DWA)是一种局部路径规划算法,常用于移动机器人的导航和避障。这种方法能够考虑机器人的动态约束,帮助机器人在复杂环境中安全、高效地移动。下面是DWA算法的详细描述: 1. 动态窗口的概念 动态窗口法的核心概念是“动态窗口”,这是

    2024年02月05日
    浏览(52)
  • 动态规划|【路径问题】|931.下降路径最小和

    目录 题目 题目解析 思路 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 代码 931. 下降路径最小和 给你一个  n x n  的  方形  整数数组  matrix  ,请你找出并返回通过  matrix  的 下降路径   的   最小和  。 下降路径  可以从第一行中的任何元素开始,并从每一

    2024年04月13日
    浏览(42)
  • 算法刷刷刷|动态规划篇|509.斐波那契数| 70.爬楼梯| 746.使用最小花费爬楼梯| 62.不同路径| 63不同路径2| 343.正数拆分 | 96.不同的二叉搜索树

    509. 斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n 1 给定 n ,请计算 F(n) 。 70.爬楼梯 746.使用最小花费爬楼梯 给你一个整数

    2023年04月23日
    浏览(56)
  • 【学会动态规划】最小路径和(9)

    目录 动态规划怎么学? 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后: 学习一个算法没有捷径,更何况是学习动态规划, 跟我一起刷动态规划算法题,一起学会动态规划! 题目链接:64. 最小路径和 - 力扣(Leet

    2024年02月16日
    浏览(35)
  • 【学会动态规划】下降路径最小和(8)

    目录 动态规划怎么学? 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后: 学习一个算法没有捷径,更何况是学习动态规划, 跟我一起刷动态规划算法题,一起学会动态规划! 题目链接:931. 下降路径最小和 - 力扣(

    2024年02月16日
    浏览(40)
  • 动态规划问题——矩阵的最小路径和

    题目: 给定一个矩阵m,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,返回所有路径中最小的路径和。 示例: 给定的m如下: 1        3         5        9 8        1        3        4  5        0        6 

    2023年04月08日
    浏览(48)
  • 【C】动态规划 之 多维最大最小路径和

    总结一下这类题型的思路: 每一步所求的最优解 = 上一步的最优解 + 这一步的情况 主要思路: 1.到达每一个位置的 最大和 等于 前一步最大和 加上 这一位置的值, 而前一步要么是从左上下来,要么是从右上下来,这样就将原问题分解了 2.记得初始化dp数组,不然里面元素初

    2024年04月27日
    浏览(40)
  • leetcode63. 不同路径 II(动态规划-java)

    来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/unique-paths-ii 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。

    2024年02月11日
    浏览(47)
  • 【动态规划刷题 5】 最小路径和&&地下城游戏

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

    2024年02月13日
    浏览(44)
  • 算法leetcode|64. 最小路径和(rust重拳出击)

    给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明 :每次只能向下或者向右移动一步。 m == grid.length n == grid[i].length 1 = m, n = 200 0 = grid[i][j] = 200 面对这道算法题目,二当家的再次陷入了沉思。 这道题和62. 不同

    2024年02月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包