码迷,mamicode.com
首页 > 其他好文 > 详细

Minimum Path Sum

时间:2016-01-10 15:36:20      阅读:159      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!