首页 > 其他分享 >120.三角形最小路径和

120.三角形最小路径和

时间:2024-09-03 20:22:36浏览次数:5  
标签:结点 triangle get int 路径 120 下标 三角形 dp

1.题目描述

给定一个三角形 triangle ,找出自顶向下的最小路径和。

每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1 。

示例 1:

输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]
输出:11
解释:如下面简图所示:
   2
  3 4
 6 5 7
4 1 8 3
自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。

示例 2:

输入:triangle = [[-10]]
输出:-10

提示:

  • 1 <= triangle.length <= 200
  • triangle[0].length == 1
  • triangle[i].length == triangle[i - 1].length + 1
  • -104 <= triangle[i][j] <= 104

2.解题思路

思路与 64.最小路径和 类似,不过本题的dp[i][j] 取决于上一行中同一列或者前一列的两个位置中的较小值,即min(dp[i-1][j],dp[i-1][j-1]),因为是计算到三角形底部的最小路径和,所以要从dp[m-1]这一行中取最小值作为答案,dp数组中每一个元素要初始化为MAX_VALUE,方便区分哪些位置是不可达的

3.代码实现

class Solution {
    public int minimumTotal(List<List<Integer>> triangle) {
        int m = triangle.size();
        int[][] dp = new int[m][m];
        for (int i = 0; i < m; i++) {
            Arrays.fill(dp[i],Integer.MAX_VALUE / 2);
        }
        dp[0][0] = triangle.get(0).get(0);
        for (int i = 1; i < m; i++) {
            dp[i][0] = dp[i-1][0] + triangle.get(i).get(0);
            for (int j = 1; j <= i; j++) {
                dp[i][j] = Math.min(dp[i-1][j],dp[i-1][j-1]) + triangle.get(i).get(j);
            }
        }
        int res = Integer.MAX_VALUE / 2;
        for (int j = 0; j < m; j++) {
            if (dp[m-1][j] < res) {
                res = dp[m-1][j];
            }
        }
        return res;
    }
}

标签:结点,triangle,get,int,路径,120,下标,三角形,dp
From: https://blog.csdn.net/cqjnovo/article/details/141870914

相关文章

  • 多模块项目中,模块的某个类的主方法和测试方法,他们文件访问的相对路径的根目录不同
    遇到问题在编写某个多模块项目的某个类时,在方法中使用Properties读取配置文件,出现的错误。这里假定项目名为project,模块名为modular。importorg.junit.Test;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.util.Properties......
  • 多目标应用:基于自组织多模态多目标鸽群优化算法MMOPIO的移动机器人路径规划研究(提供MA
      一、机器人路径规划介绍移动机器人(Mobilerobot,MR)的路径规划是移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或局部已知的局部路径规划。随着科技的快速发展以及机器人的大......
  • PbootCMS 后台常用文件修改路径位置
    在PbootCMS中,后台常用文件通常保存在 apps\admin\view\default 目录中。以下是常用的几个文件及其路径,这些文件在使用过程中可能需要修改一些文字内容。以下是具体的文件路径和用途说明:1.登录页页面修改文件路径:plaintext apps\admin\view\default\index.html用途......
  • 第120期 Youtube人脸数据集
    引言亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。背景在人工智能和计算机视觉领域,人脸识别技术一直是一个备受关注的研究热点。随着......
  • 20240903_120652 mysql 填空题 dql简单查
    查询tb表的所有数据select*fromtb查询student表的全部数据,只显示id与name列selectid,namefromstudent查询student表的全部数据,只显示id与name列,给id列起别名为学号,给name列起别名为姓名selectidas学号,nameas姓名fromstudent查询student表中的学生都来自哪个城......
  • 【路径规划】月球车DEM生成与局部和全球路径规划
    摘要本文使用MATLAB和优化工具箱(OptimizationToolbox)解决了无人机在矢量风场中尽可能短时间穿越的问题。通过分析不同路径规划算法的性能,本文提出了一种优化路径的方法,能够在复杂环境中快速规划最佳路径,以实现时间最小化的目标。该研究为无人机及其他移动机器人的路径规划......
  • 【路径规划】在二维环境中快速探索随机树和路径规划的示例
    摘要本文介绍了快速探索随机树(Rapidly-exploringRandomTree,RRT)算法在二维环境中的路径规划应用。RRT是一种随机采样算法,能够快速构建从起点到目标点的路径,特别适用于复杂环境中的机器人路径规划。通过在随机方向上扩展树结构,RRT算法能够高效避开障碍物并找到一条可行路径......
  • 龙讯LT8618SXB TTL/RGB/BT656/BT1120转HDMI 1.4,成熟批量产品
      LT8618SXB描述:LT8618SXB是Lontium基于ClearEdgeTM技术的低功耗版本HDMI发射机。它支持24位颜色深度HDMI1.4(高清多媒体接口)规范。它们完全向后兼容Lontium的第一代HDMI发射机LT8618EX。LT8618SX是一款高性能、低功耗的部件,专为高清-数码相机、高清-数码摄像机、高清-PMP/MP......
  • 大模型LLM学习路线图2024年最新版!全面掌握学习路径,非常详细,想学大模型收藏这一篇就够
    ChatGPT的出现在全球掀起了AI大模型的浪潮,2023年可以被称为AI元年,AI大模型以一种野蛮的方式,闯入你我的生活之中。从问答对话到辅助编程,从图画解析到自主创作,AI所展现出来的能力,超出了多数人的预料,让不少人惊呼:“未来是属于AI的”。AI大模型——成为互联网从业者必备技能。......
  • 大模型LLM学习路线图2024年最新版!全面掌握学习路径,非常详细,想学大模型收藏这一篇就够
    ChatGPT的出现在全球掀起了AI大模型的浪潮,2023年可以被称为AI元年,AI大模型以一种野蛮的方式,闯入你我的生活之中。从问答对话到辅助编程,从图画解析到自主创作,AI所展现出来的能力,超出了多数人的预料,让不少人惊呼:“未来是属于AI的”。AI大模型——成为互联网从业者必备技能。......