Title

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

相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。

例如,给定三角形:

[[2],[3,4],[6,5,7],[4,1,8,3]
]

自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。

说明:

如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。

动态规划

自顶向上的动态规划,经典的题目。

Code

 def minimumTotal(self, triangle: List[List[int]]) -> int:for i in range(len(triangle) - 2, -1, -1):for j in range(len(triangle[i])):triangle[i][j] += min(triangle[i + 1][j], triangle[i + 1][j + 1])return triangle[0][0]

复杂度分析

时间复杂度:O(n2),其中 n 是三角形的行数。

空间复杂度:O(1)。

题外话

如果在面试中遇到类似的题目,需要和面试官进行沟通,可以询问「是否有空间复杂度限制」「是否可以修改原数组」等问题,给出符合条件的算法。

120. Triangle 三角形最小路径和相关推荐

  1. leetcode--笔记——120. 三角形最小路径和

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

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

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

  3. 算法:三角形最小路径和

    题目 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [[2],[3,4],[6,5,7],[4,1,8,3] ] 1 2 3 4 5 6 自顶向 ...

  4. Java 练习 1.三角形最小路径和 2.外出采摘的日本人 3.最大矩形

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

  5. 动态规划之求解三角形最小路径问题

    求解三角形最小路径问题 一.[问题描述]: 给定 高度为n的一个整数三角形,找出从顶部到底部的最小路径和,只能向先移动相邻的结点.首先输入n,接下来的1~n行,第i行输入i个整数,输出分为2行,第一行 ...

  6. Leetcode 120. 三角形最小路径和 (每日一题 20210927)

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

  7. 120. 三角形最小路径和

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

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

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

  9. LeetCode 120. 三角形最小路径和(动态规划)

    题目描述 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径 ...

最新文章

  1. c语言if(!k1)x=1,C语言选择题题库2
  2. android默认代码混淆,Android SDK默认混淆配置文件
  3. 挑战练习6.4 报告编译版本
  4. -moz、-ms、-webkit
  5. 数据结构47:查找算法
  6. php创建游戏房间思路,php设计模式之建造器模式分析【星际争霸游戏案例】
  7. PHP调用微信发放现金红包接口
  8. MySQL下载和安装教程
  9. Java 正则表达式的用法与实例
  10. C语言来实现链表创建
  11. Java项目经验相关常见面试题
  12. c++ 0x3f 0x3f3f 0x3f3f3f 0x3f3f3f3f的具体值
  13. 【深入浅出向】从自信息到熵、从相对熵到交叉熵,nn.CrossEntropyLoss, 交叉熵损失函数与softmax,多标签分类
  14. 3月20 Bundle Adjustment光束平差法概述
  15. iOS企业应用分发平台搭建(uniapp打包)
  16. win10磁贴中的图标变成白色的解决方法
  17. 公众号h5获取手机号权限_微信公众号h5获取用户openId的方法和步骤
  18. 前端开发:webstorm永久破解
  19. Z80 CPU资料调查
  20. windows下RNDIS/Ethernet Gadget device驱动安装

热门文章

  1. IDEA忽略不必要提交的文件
  2. AutoComplete - 自动完成插件
  3. docker版wordpress
  4. UIWebView相关应用
  5. 深入掌握JMS(六):消息头
  6. dhtml是基于html的一门语言,什么是DHTML
  7. 使用C语言将一个数组首尾互换后输出,函数实现体会地址传递
  8. 计算机中心述职报告诉,计算中心述职报告
  9. Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字
  10. Java黑皮书课后题第4章:*4.8(给出ASCII码对应的字符)编写程序,得到一个ASCII码的输入(0~27之间的一个整数),然后显示该字符