Leetcode原题链接:
https://oj.leetcode.com/problems/triangle/

动态规划的题目,f[i][j] 表示某点到最后底部的最短值。

第一步: 先计算出最后一排的最短值,实际上就是这一排本身的值。
第二步:From bottom to up, 每一层的最短值只需要把自身值加上,并且取下层的左右邻接点的最小值。

代码如下:

public class Solution {
public int minimumTotal(ArrayList> triangle) {
int n = triangle.size();
int sum[][] = new int[n][n];
// bottom up. first get the last line's min value.
for (int i = 0; i < n; i++) {
sum[n - 1][i] = triangle.get(n - 1).get(i);
}
for (int i = n - 2; i >= 0; i --) {
for (int j = 0; j <= i; j++) {
sum[i][j] = Math.min(sum[i + 1][j], sum[i + 1][j + 1]) + triangle.get(i).get(j);
}
}
return sum[0][0];
}
}
如果要实现O(n)空间复杂度,则只需要在原有的List上不断更新即可,代码如下:
public class Solution {
public int minimumTotal(List> triangle) {
if (triangle == null || triangle.size() == 0) {
return 0;
}
int row = triangle.size();
ArrayListret = new ArrayList(triangle.get(row - 1));
for (int i = row - 2; i >= 0; i--) {
for (int j = 0; j <= i; j++) {
ret.set(j, Math.min(ret.get(j), ret.get(j + 1)) + triangle.get(i).get(j));
}
}
return ret.get(0);
}
}

Triangle 三角形求最小路径和 @leetcode相关推荐

  1. Leetcode120.三角形的最小路径和 -- DP算法

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

  2. 数字三角形路径最小值c语言题目,算法学习——动态规划之点数值三角形的最小路径...

    算法描述在一个n行的点数值三角形中,寻找从顶点开始每一步可沿着左斜或者右斜向下直到到达底端,使得每个点上的数值之和为最小 右图为一个4行的点数值三角形 算法思路接收用户输入行数n 使用一个二维数组a[ ...

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

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

  4. 数字三角形求最大路径

    /**问题描述] 上图给出了一个数字三角形.从三角形的顶部到底部有很多条不同的路径. 对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最 大的和.路径上的每一步只能从一个数走到下一层 ...

  5. 有向图最小路径覆盖方法浅析、证明 //hdu 3861

    路径覆盖就是在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联. 对于一个有向无环图怎么求最小路径覆盖? 先构造二分图: 对于原图,先拆点,吧每个点i拆成ii,iii. ...

  6. 【网络流24题】D、魔术球问题(有向无环图的最小路径覆盖、思维)

    D.魔术球问题(有向无环图的最小路径覆盖.思维)[省选/NOI- ] P2765 魔术球问题 [问题分析] 枚举答案转化为判定性问题,然后最小路径覆盖,可以转化成二分图最大匹配,从而用最大流解决. [ ...

  7. 【网络流24题】解题报告:C、最小路径覆盖问题(有向无环图最小路径覆盖)(最大流)

    C.最小路径覆盖问题(有向无环图最小路径覆盖)(最大流)[省选/NOI- ] 拆点最大流 [问题分析] 有向无环图最小路径覆盖,可以转化成二分图最大匹配问题,从而用最大流解决. [建模方法] 构造二分 ...

  8. 【Luogu P2764】最小路径覆盖问题

    网络流 \(24\) 题之一. Problem Description 给出一个 \(n\) 个点 \(m\) 条边的 \(DAG\) ,求最小路径点覆盖,并输出路径选择方案. Input Forma ...

  9. POJ 2594 Treasure Exploration (可相交最小路径覆盖)

    题意 给你张无环有向图,问至少多少条路径能够覆盖该图的所有顶点--并且,这些路径可以有交叉. 思路 不是裸的最小路径覆盖,正常的最小路径覆盖中两个人走的路径不能有重复的点,而本题可以重复. 当然我们仍 ...

  10. UVALive - 3126 Taxi Cab Scheme(最小路径覆盖-二分图最大匹配)

    题目链接:点击查看 题目大意:有n个人要坐出租车,每个人上车的时间已知,规定出租车必须在每个人上车之前的一分钟之前到达这个人的位置,之后给出每个人的当前坐标以及需要达到的目的地坐标,行驶完该段路程的时 ...

最新文章

  1. 《python 与数据挖掘 》一1.3 Python开发环境的搭建
  2. JAVASE——File类
  3. AtCoder-2379 - 连接竹竿 思维 | 数学
  4. linux的常用操作——用户的添加、删除和查看
  5. 阿里 深度学习推理框架_如何通过Knative无服务器框架构建深度学习推理
  6. Wi-Fi 6 爆发的 2019
  7. java servlet 3.1,Servlet 3.1规范学习小记
  8. 无线充U型超声波电动牙刷方案开发
  9. linux模拟键盘按键_Linux上的自动键盘按键
  10. 如何使用荣耀手机的计算机功能,华为荣耀手机投屏电脑教程
  11. 深响|对话THE9演唱会主创:技术打开想象力,未来的娱乐还能这么玩
  12. 【笔记】YOLOv3训练自己的数据集(2)——训练和测试训练效果
  13. 电子信息工程考研:12大专业方向解读
  14. MySQL的my-innodb-heavy-4G.ini配置文件的翻译
  15. spa单页面开发的尝试
  16. Java课程设计-画图工具
  17. 【网站搭建】vps购买、域名注册、ngnix安装一条龙搭建静态网站
  18. JavaScript 编程精解 中文第三版 二十、Node.js
  19. 7-85 根据输入的空气污染指数,输出相应的信息。7-86 分支结构——大小写字母判断7-87 A±B
  20. 刘强东:B2C电商本质在于娇惯消费者

热门文章

  1. Gentoolinux安装教程
  2. 好读书之后是什么?(转)
  3. cortex系列处理器排行_arm处理器排行_ARM Cortex A系列处理器性能分类比较ARM处理器排名 ZNDS资讯...
  4. CODEVS 3977 炉石传说——圣骑士的逆袭
  5. android 临时文件存储,缓存和临时文件/文件夹删除android
  6. mysql的sql语句没错但是报错_sql语句没错·但是却报错,怎么回事?
  7. 1082 射击比赛(JAVA)
  8. 用安装包修复服务器,修复服务器
  9. 【论文】Deep Pyramidal Residual Networks(译)
  10. python tkinter 自主小项目——计算器往事