64. Minimum Path Sum

음수가 아닌 숫자로 채워진 m x n 그리드가 주어지면 왼쪽 위에서 오른쪽 아래로 경로를 따라 모든 숫자의 합을 최소화하는 경로를 찾습니다.

64. Minimum Path Sum

class Solution {
    // 경로를 따라 모든 숫자의 합을 최소화하는 왼쪽 위에서 오른쪽 아래로 경로
    // 아래 또는 오른쪽으로만 이동할 수 있다.
    // T: O(mn)
    public int minPathSum(int[][] grid) {
        int m = grid.length;
        int n = grid[0].length;
        
        int[][] dp = new int[m + 1][n + 1];
        for (int[] row: dp) {
            Arrays.fill(row, Integer.MAX_VALUE);
        }
        dp[m - 1][n] = 0;
        
        for (int r = m - 1; r >= 0; r--) {
            for (int c = n - 1; c >= 0; c--) {
                dp[r][c] = grid[r][c] + Math.min(dp[r + 1][c], dp[r][c + 1]);
            }
        }
        
        return dp[0][0];
    }
}





© 2017. by yeopoong.github.io

Powered by yeopoong