LeetCode 120 三角形最小路徑和

2021-09-25 10:27:43 字數 1092 閱讀 7203

給定乙個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。

例如,給定三角形:

[

[2],

[3,4],

[6,5,7],

[4,1,8,3]

]

自頂向下的最小路徑和為11(即,2+3+5+1= 11)。

這道題的第乙個難點就出現在題目中給出的三角形。其實那就是乙個普通的二維陣列,為了表現成三角形所以加了縮排。

[ [2],

[3,4],

[6,5,7],

[4,1,8,3]

]其實題目中給出的陣列就是上面的這個樣子。由於每次只能向相鄰的兩個結點走,因此就是說上層的點對應的最小值點是由下面的結點和右下的結點

兩結點的最小值再加上當前自己的值得來的,這也就是遞推公式了。

class solution:

def minimumtotal(self, ********: list[list[int]]) -> int:

self.dp = {}

self.nums = len(********)

self.length = len(********[self.nums - 1])

for i in range(self.length):

self.dp[(self.nums - 1,i)] = ********[self.nums - 1][i]

for y in reversed(range(self.nums-1)):

for x in range(len(********[y])):

self.dp[(y,x)] = ********[y][x] + min(self.dp[(y+1,x)],self.dp[(y+1,x+1)])

return self.dp[(0,0)]

leetcode 120 三角形最小路徑

給定乙個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。相鄰的結點 在這裡指的是 下標 與 上一層結點下標 相同或者等於 上一層結點下標 1 的兩個結點。例如,給定三角形 2 3,4 6,5,7 4,1,8,3 自頂向下的最小路徑和為 11 即,2 3 5 1 11 注意 既...

leetcode 120 三角形最小路徑和

給定乙個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。例如,給定三角形 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 表示...

leetcode120 三角形最小路徑和

給定乙個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。例如,給定三角形 2 3,4 6,5,7 4,1,8,3 自頂向下的最小路徑和為 11 即,2 3 5 1 11 說明 如果你可以只使用 o n 的額外空間 n 為三角形的總行數 來解決這個問題,那麼你的演算法會很加分。...