Re: [閒聊] 每日LeetCode

作者: Rushia (みけねこ的鼻屎)   2022-12-13 11:59:30
931. Minimum Falling Path Sum
給予一個n*n矩陣,求出自頂到下的最小路徑和,路徑上到下可由座標(x,y)移動到(x+1,y)
(x+1,y+1)和(x+1,y-1),對應了中、左、右。
Example :
藍色為最小路徑(可能不唯一)
https://assets.leetcode.com/uploads/2021/11/03/failing1-grid.jpg
https://assets.leetcode.com/uploads/2021/11/03/failing2-grid.jpg
思路:
1.找最小路徑問題可以用dfs求解,並用動態規劃優化。
2.任意一個點的最小路徑一定是前三條路徑裡面最小的那一個,狀態轉移方程:
dp(i,j) = mat[i,j] + min(dp(i+1,j), dp(i+1,j+1), dp(i+1,j-1))
3.有動態轉移方程後就可以求dp了,我們初始化最後一行的數值為矩陣值,因為
他的下面沒路可走了。
(因為我是遞迴改過來的所以我從下往上建立dp,由上往下道理差不多。)
4.照動態轉移方程建完dp之後,第一行的值為到達這一個點的最小路徑和,我們只要
再遍歷這一行就能找出最小路徑和了。
Java Code:
作者: pandix (麵包屌)   2022-12-13 12:02:00
大師
作者: sustainer123 (caster)   2022-12-13 12:06:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com