LintCode: 109. 数字三角形 Java
2017-12-04 16:03
429 查看
题目大意
给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。注意事项
如果你只用额外空间复杂度O(n)的条件下完成可以获得加分,其中n是数字三角形的总行数。
样例
比如,给出下列数字三角形:
[
[2],
[3,4],
[6,5,7],
[4,1,8,3]
]
从顶到底部的最小路径和为11 ( 2 + 3 + 5 + 1 = 11)。
解题思路
总路径最小,则被包含路径之和最小(倒推,顺推不成立)。public int minimumTotal(int[][] triangle) { // write your code here for (int i=triangle.length-2; i>=0; i--) { for (int j=0; j<triangle[i].length; j++) { triangle[i][j] += Math.min(triangle[i+1][j], triangle[i+1][j+1]); } } return triangle[0][0]; }
相关文章推荐
- lintcode-数字三角形-109
- lintcode-109-数字三角形
- LintCode 数字三角形
- lintcode triangle 数字三角形
- 算法-蓝桥杯-算法训练 数字三角形 (JAVA)
- lintcode--第3题:统计数字
- lintcode&九章算法——No.3 统计数字 ? 待解决
- LintCode:整数转罗马数字
- LintCode_Java旅程 回文数
- lintcode 摆动排序(Wiggle Sort) (Java)
- LintCode 3.统计数字
- Codevs2189数字三角形2题解
- LintCode-Java-172-删除元素
- lintcode 两数之和(Two Sum )(Java)
- 算法训练 数字三角形 JAVA
- LintCode-三角形计数
- Codevs 2189 数字三角形W
- LintCode 删除数字+贪心
- lintcode Guess Number Game(Java)
- LintCode 3 统计数字