diff --git a/Problem24.java b/Problem24.java new file mode 100644 index 00000000..6efaccb8 --- /dev/null +++ b/Problem24.java @@ -0,0 +1,33 @@ +class Solution { + public int minFallingPathSum(int[][] matrix) { + if (matrix == null || matrix.length == 0) { + return 0; + } + + int n = matrix.length; + int min = Integer.MAX_VALUE; + + 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++ ) { + if (j == 0) { + dp[i][j] = matrix[i][j] + Math.min(dp[i-1][j], dp[i-1][j+1]); + } else if (j == n - 1) { + dp[i][j] = matrix[i][j] + Math.min(dp[i-1][j-1], dp[i-1][j]); + } else { + dp[i][j] = matrix[i][j] + Math.min(dp[i-1][j+1], Math.min(dp[i-1][j-1], dp[i-1][j])); + } + } + } + + for (int i = 0; i