給定乙個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。
例如,給定三角形:
[
[2],
[3,4],
[6,5,7],
[4,1,8,3]
]
自頂向下的最小路徑和為11
(即,2+3+5+1= 11)。
分析:從右下向左上前進。dp[i][j] = min(dp[i+1][j]+dp[i+1][j])+********[i][j]。dp[i][j]表示到達i,j這個位置上的最小路徑和。
問題來了,⤴️狀態轉移方程用python怎麼寫???
class solution(object):
def minimumtotal(self, ********):
""":type ********: list[list[int]]
:rtype: int
"""dp = [[0 for _ in range(len(row))] for row in ********]
row = len(********)
for j in range(row):
dp[row-1][j] = ********[row-1][j]
for i in range(row-2,-1,-1):
for j in range(i,-1,-1):
dp[i][j] = min(dp[i+1][j],dp[i+1][j+1])+********[i][j]
return dp[0][0]
原來python也可以二維列印啊!!
******** = [[2],[3,4],[6,5,7],[4,1,8,3]]
# print(********[0][0]) # 2
# print(********[2][1]) # 5
for row in ********:
print(row)
# [2]
# [3, 4]
# [6, 5, 7]
# [4, 1, 8, 3]
leetcode 120 三角形最小路徑
給定乙個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。相鄰的結點 在這裡指的是 下標 與 上一層結點下標 相同或者等於 上一層結點下標 1 的兩個結點。例如,給定三角形 2 3,4 6,5,7 4,1,8,3 自頂向下的最小路徑和為 11 即,2 3 5 1 11 注意 既...
leetcode120 三角形最小路徑和
給定乙個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。例如,給定三角形 2 3,4 6,5,7 4,1,8,3 自頂向下的最小路徑和為 11 即,2 3 5 1 11 說明 如果你可以只使用 o n 的額外空間 n 為三角形的總行數 來解決這個問題,那麼你的演算法會很加分。...
LeetCode 120 三角形最小路徑和
120 三角形最小路徑和 題目 給定乙個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。例如,給定三角形 2 3,4 6,5,7 4,1,8,3 自頂向下的最小路徑和為 11 即,2 3 5 1 11 方法 動態規劃法 1.dp狀態的定義 dp j 這裡是代表 i.j 這個數...