其他分享
首页 > 其他分享> > 【动态规划】【爬楼梯问题】931. 下降路径最小和

【动态规划】【爬楼梯问题】931. 下降路径最小和

作者:互联网

爬台阶题型汇总

image

class Solution
{
    public int minFallingPathSum( int[][] matrix )
    {
        int n = matrix.length;
        int[][] dp = new int[n][n];

        //对于第一行来说,每个坐标的值就是他的最小值
        for(int i =0; i<n;i++)
        {
            dp[0][i] = matrix[0][i];
        }
        for(int i =1;i<n;i++)
        {
            for(int j=0;j<n;j++)
            {
                int val = matrix[i][j];
                dp[i][j] = dp[i-1][j]+val;
                if(j-1>=0)
                {
                    dp[i][j]=Math.min(dp[i][j],dp[i-1][j-1]+val);
                }
                if(j+1<n)
                {
                    dp[i][j]=Math.min(dp[i][j],dp[i-1][j+1]+val);
                }
            }
        }
        int ans =Integer.MAX_VALUE;
        // 遍历最后一行,找到最小的
        for(int i =0 ;i<n;i++)
        {
            ans = Math.min(ans,dp[n-1][i]);
        }
        return ans;
    }
}

标签:爬楼梯,matrix,int,路径,62,931,dp
来源: https://www.cnblogs.com/coderpeng/p/16191513.html