Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 2ea90cd

Browse files
solves #120 in java
1 parent 59a4e2d commit 2ea90cd

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
| 117 | [Populating Next Right Pointers in Each Node II](https://leetcode.com/problems/populating-next-right-pointers-in-each-node-ii) | [![Java](assets/java.png)](src/PopulatingNextRightPointersInEachNodeII.java) | |
112112
| 118 | [Pascal's Triangle](https://leetcode.com/problems/pascals-triangle) | [![Java](assets/java.png)](src/PascalsTriangle.java) [![Python](assets/python.png)](python/pascals_triangle.py) | |
113113
| 119 | [Pascal's Triangle II](https://leetcode.com/problems/pascals-triangle-ii) | [![Java](assets/java.png)](src/PascalsTriangleII.java) [![Python](assets/python.png)](python/pascals_triangle_ii.py) | |
114-
| 120 | [Triangle](https://leetcode.com/problems/triangle) | | |
114+
| 120 | [Triangle](https://leetcode.com/problems/triangle) | [![Java](assets/java.png)](src/Triangle.java) | |
115115
| 121 | [Best Time to Buy and Sell Stocks](https://leetcode.com/problems/best-time-to-buy-and-sell-stock) | [![Java](assets/java.png)](src/BestTimeToBuyAndSellStock.java) [![Python](assets/python.png)](python/best_time_to_buy_and_sell_stock.py) | |
116116
| 122 | [Best Time to Buy and Sell Stocks II](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii) | [![Java](assets/java.png)](src/BestTimeToBuyAndSellStockII.java) [![Python](assets/python.png)](python/best_time_to_buy_and_sell_stock_ii.py) | |
117117
| 125 | [Valid Palindrome](https://leetcode.com/problems/valid-palindrome) | [![Java](assets/java.png)](src/ValidPalindrome.java) [![Python](assets/python.png)](python/valid_palindrome.py) | |

src/Triangle.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// https://leetcode.com/problems/triangle
2+
// T: O(n) where n elements in triangle
3+
// S: O(1)
4+
5+
import java.util.List;
6+
7+
public class Triangle {
8+
public int minimumTotal(List<List<Integer>> triangle) {
9+
final int rows = triangle.size();
10+
List<Integer> previousRow = triangle.get(0);
11+
12+
for (int row = 1 ; row < rows ; row++) {
13+
final List<Integer> currentRow = triangle.get(row);
14+
for (int column = 0 ; column < row + 1 ; column++) {
15+
if (column == 0) currentRow.set(column, currentRow.get(column) + previousRow.get(0));
16+
else if (column == row) currentRow.set(column, currentRow.get(column) + previousRow.get(row - 1));
17+
else currentRow.set(
18+
column,
19+
currentRow.get(column) + Math.min(previousRow.get(column - 1), previousRow.get(column))
20+
);
21+
}
22+
previousRow = currentRow;
23+
}
24+
25+
return minOfLastRow(triangle);
26+
}
27+
28+
private int minOfLastRow(List<List<Integer>> triangle) {
29+
return min(triangle.get(triangle.size() - 1));
30+
}
31+
32+
private int min(List<Integer> array) {
33+
return array.stream().min(Integer::compareTo).get();
34+
}
35+
}

0 commit comments

Comments
 (0)