Skip to content

Commit c0676a7

Browse files
committed
finish "120. Triangle". Fix #120
1 parent 5d22de2 commit c0676a7

File tree

4 files changed

+58
-5
lines changed

4 files changed

+58
-5
lines changed

README.adoc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -724,11 +724,11 @@
724724
|{doc_base_url}/0119-pascals-triangle-ii.adoc[Note]
725725
|Easy
726726

727-
//|120
728-
//|{leetcode_base_url}/triangle/[Triangle]
729-
//|{source_base_url}/_0120_Triangle.java[Java]
730-
//|{doc_base_url}/0120-triangle.adoc[Note]
731-
//|Medium
727+
|120
728+
|{leetcode_base_url}/triangle/[Triangle]
729+
|{source_base_url}/_0120_Triangle.java[Java]
730+
|{doc_base_url}/0120-triangle.adoc[Note]
731+
|Medium
732732

733733
|121
734734
|{leetcode_base_url}/best-time-to-buy-and-sell-stock/[Best Time to Buy and Sell Stock]

docs/0120-triangle.adoc

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,19 @@ The minimum path sum from top to bottom is `11` (i.e., *2* + *3* + *5* + *1* = 1
2222

2323
Bonus point if you are able to do this using only _O_(_n_) extra space, where _n_ is the total number of rows in the triangle.
2424

25+
=== 解题分析
26+
27+
image::images/0120-1.png[]
28+
29+
一图胜千言!
30+
31+
自底向上计算逐层每个元素的最小和。最后即可得出最小路径和。
32+
33+
=== 思考题
34+
35+
尝试一下动态规划的思路。
36+
37+
=== 参考资料
38+
39+
. https://leetcode-cn.com/problems/triangle/solution/120-san-jiao-xing-zui-xiao-lu-jing-he-by-alexer-66/[120. 三角形最小路径和 - 三角形最小路径和 - 力扣(LeetCode)]
40+
. https://leetcode-cn.com/problems/triangle/solution/di-gui-ji-yi-hua-sou-suo-zai-dao-dp-by-crsm/[【Java】递归,记忆化搜索,再到DP - 三角形最小路径和 - 力扣(LeetCode)]

docs/images/0120-1.png

58.3 KB
Loading
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.diguage.algorithm.leetcode;
2+
3+
import java.util.List;
4+
5+
import static java.util.Arrays.asList;
6+
7+
/**
8+
* = 120. Triangle
9+
*
10+
* https://leetcode.com/problems/triangle/[Triangle - LeetCode]
11+
*
12+
* @author D瓜哥, https://www.diguage.com/
13+
* @since 2020-02-07 23:14
14+
*/
15+
public class _0120_Triangle {
16+
/**
17+
* Runtime: 1 ms, faster than 99.42% of Java online submissions for Triangle.
18+
* Memory Usage: 39.2 MB, less than 8.16% of Java online submissions for Triangle.
19+
*/
20+
public int minimumTotal(List<List<Integer>> triangle) {
21+
int[] sums = new int[triangle.size() + 1];
22+
for (int i = triangle.size() - 1; i >= 0; i--) {
23+
List<Integer> row = triangle.get(i);
24+
for (int j = 0; j < row.size(); j++) {
25+
sums[j] = Math.min(sums[j], sums[j + 1]) + row.get(j);
26+
}
27+
}
28+
return sums[0];
29+
}
30+
31+
public static void main(String[] args) {
32+
_0120_Triangle solution = new _0120_Triangle();
33+
List<List<Integer>> t1 = asList(asList(2), asList(3, 4), asList(6, 5, 7), asList(4, 1, 8, 3));
34+
int r1 = solution.minimumTotal(t1);
35+
System.out.println((r1 == 11) + " : " + r1);
36+
}
37+
}

0 commit comments

Comments
 (0)