class Solution {
public:
int mymin(int a,int b,int c){
return min(a,min(b,c));
}
int minFallingPathSum(vector<vector<int>>& A) {
int N = A.size();
int dp[N+2][N+2];
memset(dp,0,sizeof(dp));
for(int i=0;i<=N;i++) dp[i][0] = dp[i][N+1] = 0x3f3f3f3f;
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
dp[i+1][j+1] = A[i][j] +
mymin(dp[i][j],dp[i][j+1],dp[i][j+2]);
}
}
int ans = 0x3f3f3f3f;
for(int i=1;i<=N;i++) ans=min(ans,dp[N][i]);
return ans;
}
};
No.51 - LeetCode931-路径动态规划-简单
最新推荐文章于 2024-11-19 23:58:32 发布
本文深入探讨了寻找矩阵中从顶部到底部的最小路径和的算法实现,通过动态规划的方法,详细讲解了如何通过逐层计算来确定每一步的最优选择,最终找到整个路径上的最小总和。
392

被折叠的 条评论
为什么被折叠?



