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

Материал из DISCOPAL
Перейти к: навигация, поиск
class Solution {
    public int minFallingPathSum(int[][] A) {
        for(int r = 1; r<A.length;r++){
            for(int c = 0; c<A[r].length;c++){
                A[r][c] = getMinimun(A,r,c);
            }
        }
        int res = Integer.MAX_VALUE;
        for(int num : A[A.length-1]){
            res = Math.min(res,num);
        }
        return res;
    }
 
    private int getMinimun(int[][] A, int r, int c){
        int[][] values = new int[][]{{-1,-1},{-1,0},{-1,1}};
        int res = Integer.MAX_VALUE;
        for(int[] value : values){
            int nR = r+value[0];
            int nC = c+value[1];
            if(nR<0 || nC< 0 || nC==A[nR].length)continue;
            res = Math.min(res,A[nR][nC]);
        }
        return res + A[r][c];
    }
    }