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