首页 > 其他 > 详细

Minimum Path Sum

时间:2016-01-10 15:35:45      阅读:212      评论:0      收藏:0      [点我收藏+]

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.

 

int min(int left, int right){
    return (left - right) > 0 ? right : left;
}
int minPathSum(int** grid, int gridRowSize, int gridColSize) {
    //memorize a 2D array to save the miminum
    //initialize the first row and col
    for(int i = 1; i < gridRowSize; i++){
        grid[i][0] += grid[i - 1][0];
    }
    for(int i = 1; i < gridColSize; i++){
        grid[0][i] += grid[0][i - 1];
    }
    // every num will be the sum of minor between up point and left point with this point
    for(int i = 1; i < gridRowSize; i++){
        for(int j = 1; j < gridColSize; j++){
            grid[i][j] += min(grid[i][j - 1], grid[i - 1][j]);
        }
    }
    return grid[gridRowSize - 1][gridColSize - 1];
}

Minimum Path Sum

原文:http://www.cnblogs.com/dylqt/p/5118489.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!