class Solution { public int minFallingPathSum(int[][] A) { if(A== null|| A.length==0 || A[0].length ==0 ){ return 0; } int n = A.length ; int m = A[0].length; int[][] dp = new int[n][m]; // first row calculation for(int i = 0; i<m; i++){ dp[0][i] =A[0][i]; } for(int i = 1; i<n; i++){ for(int j = 0; j<m; j++ ){ //first column scenario if(j == 0){ dp[i][j]= Math.min(dp[i-1][j],dp[i-1][j+1])+A[i][j]; } //last column scenario else if (j ==m-1){ dp[i][j]=Math.min(dp[i-1][j-1],dp[i-1][j])+A[i][j]; } //non-border scenario else{ dp[i][j]=Math.min(dp[i-1][j-1],Math.min(dp[i-1][j],dp[i-1][j+1]))+A[i][j]; } } } int min = Integer.MAX_VALUE; for(int j = 0; j<m; j++){ if(dp[n-1][j]<min){ min = dp[n-1][j]; } } return min; } }
(Medium) Minimum Fallig Path Sum LeetCode
猜你喜欢
转载自www.cnblogs.com/codingyangmao/p/11301674.html
今日推荐
周排行