Minimum Path Sum

来源:互联网 发布:apache jar包下载地址 编辑:程序博客网 时间:2024/05/06 08:15

Q:

Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.

Note: You can only move either down or right at any point in time.


Solution:

DP.

public class Solution {    public int minPathSum(int[][] grid) {        int row = grid.length;        if (row < 1)            return 0;        int col = grid[0].length;        if (col < 1)            return 0;        int[][] sum = new int[row][col];        sum[0][0] = grid[0][0];        for (int i = 1; i < row; i++)            sum[i][0] = sum[i-1][0] + grid[i][0];        for (int i = 1; i < col; i++)            sum[0][i] = sum[0][i-1] + grid[0][i];        for (int i = 1; i < row; i++) {            for (int j = 1; j < col; j++) {                sum[i][j] = Math.min(sum[i-1][j] + grid[i][j], sum[i][j-1] + grid[i][j]);            }        }        return sum[row-1][col-1];    }}


0 0
原创粉丝点击