Участник:Batyrzhan/Minimum Falling Path Sum II

Материал из DISCOPAL
< Участник:Batyrzhan
Версия от 22:26, 25 мая 2020; StasFomin (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
class Solution {
    public int minFallingPathSum(int[][] A) {
        int row = A.length;
        int col = A[0].length;
        int[][] dp = new int[row][col];
        int minPath = Integer.MAX_VALUE;
        if(row == 1)
        {
            for(int i=0;i<col;i++)
            {
                minPath= Math.min(A[0][i], minPath);
            }
            return minPath;           
        }
        dp[0] = A[0];
        for(int i=1;i<row;i++){
            for(int j=0;j<col;j++)
            {            
                int min = Integer.MAX_VALUE;
                for(int k=0;k<col;k++)
                {
                    if(k!=j)
                    {
                       int val = dp[i-1][k];
                       min = Math.min(val,min);
                    } 
                }
                dp[i][j] = min + A[i][j];
                int val = dp[i][j];
                if(i == row-1)
                {
                    minPath= Math.min(dp[i][j], minPath);
                }
            }
        }
        return minPath;
    }
    }