描述
給定乙個方形整數陣列 a,我們想要得到通過 a 的下降路徑的最小和。
下降路徑可以從第一行中的任何元素開始,並從每一行中選擇乙個元素。在下一行選擇的元素和當前行所選元素最多相隔一列。
示例:
輸入:[[1,2,3],[4,5,6],[7,8,9]]輸出:12
解釋:可能的下降路徑有:
[1,4,7], [1,4,8], [1,5,7], [1,5,8], [1,5,9]
[2,4,7], [2,4,8], [2,5,7], [2,5,8], [2,5,9], [2,6,8], [2,6,9]
[3,5,7], [3,5,8], [3,5,9], [3,6,8], [3,6,9]
和最小的下降路徑是 [1,4,7],所以答案是 12。
1 <= a.length == a[0].length <= 100思想-100 <= a[i][j] <= 100
用乙個二維陣列儲存每行中每個數當前的最小值
感覺這道題很簡單,具體直接看**吧
另外這道題只給了python的寫法
這道題實在不想用c++寫了。。。
python code
class
solution
:def
minfallingpathsum
(self, a: list[list[
int]])
->
int:
a_length =
len(a)
dp =[[
0for i in
range
(a_length)
]for i in
range
(a_length)
]for i in
range
(a_length)
: dp[0]
[i]= a[0]
[i]for i in
range(1
, a_length)
:for j in
range
(a_length)
: dp[i]
[j]= a[i]
[j]+
min(
min(dp[i -1]
[j: j -
2if j -
1>
0else
none:-
1]),
min(dp[i -1]
[j:j +2]
))return
min(dp[a_length -1]
)
力扣 動態規劃
設爬x層的梯子的方法有f x 種,那麼f x f x 1 f x 2 爬1層梯子的方式有一種 爬2層梯子的方式有兩種 爬3層梯子的方式有三種 爬4層梯子的方式有五種 classsolution int rev newint n 1 rev 0 0 rev 1 1 rev 2 2 for inti 3...
力扣 動態規劃 不同路徑
描述 乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?說明 m 和 n 的值均不超過 100。...
力扣 動態規劃 最低票價
問題描述 在乙個火車旅行很受歡迎的國度,你提前一年計劃了一些火車旅行。在接下來的一年裡,你要旅行的日子將以乙個名為 days 的陣列給出。每一項是乙個從 1 到 365 的整數。火車票有三種不同的銷售方式 一張為期一天的通行證售價為 costs 0 美元 一張為期七天的通行證售價為 costs 1 ...