Skip to content

Commit be96407

Browse files
committed
add sol 120
1 parent 2edc84f commit be96407

File tree

2 files changed

+52
-0
lines changed

2 files changed

+52
-0
lines changed

leetcode/daily/120/sol.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// https://leetcode.com/problems/triangle
2+
3+
package main
4+
5+
import "fmt"
6+
7+
func minimumTotal(triangle [][]int) int {
8+
n := len(triangle)
9+
dp := make([][]int, n)
10+
for i := 0; i < n; i++ {
11+
dp[i] = make([]int, len(triangle[i]))
12+
copy(dp[i], triangle[i])
13+
}
14+
15+
for i := n - 2; i >= 0; i-- {
16+
for j := 0; j <= i; j++ {
17+
dp[i][j] += min(dp[i+1][j], dp[i+1][j+1])
18+
}
19+
}
20+
return dp[0][0]
21+
}
22+
23+
func min(a, b int) int {
24+
if a < b {
25+
return a
26+
}
27+
return b
28+
}
29+
30+
func main() {
31+
triangle := [][]int{{2}, {3, 4}, {6, 5, 7}, {4, 1, 8, 3}}
32+
fmt.Println(minimumTotal(triangle))
33+
}

leetcode/daily/120/sol.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# https://leetcode.com/problems/triangle
2+
3+
from typing import List
4+
5+
class Solution:
6+
def minimumTotal(self, triangle: List[List[int]]) -> int:
7+
n = len(triangle)
8+
9+
# bottom up
10+
for i in range(n-2, -1, -1):
11+
for j in range(i+1):
12+
triangle[i][j] += min(triangle[i+1][j], triangle[i+1][j+1])
13+
print(triangle)
14+
15+
return triangle[0][0]
16+
17+
if __name__ == "__main__":
18+
triangle = [[2], [3, 4], [6, 5, 7], [4, 1, 8, 3]]
19+
print(Solution().minimumTotal(triangle))

0 commit comments

Comments
 (0)