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

Материал из DISCOPAL
Перейти к: навигация, поиск
   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;
   }
   }