标签:
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]; }
标签:
原文地址:http://www.cnblogs.com/dylqt/p/5118489.html