blob: f9d7a50be4cdc5e79ad078a5d83aae2d9560b0e6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#define MIN(a, b) ((a) > (b) ? (b) : (a))
int minPathSum(int** grid, int gridRowSize, int gridColSize) {
int dp[gridRowSize][gridColSize];
int i, j;
dp[0][0] = grid[0][0];
for(i = 1; i < gridColSize; i++)
dp[0][i] = dp[0][i - 1] + grid[0][i];
for(i = 1; i < gridRowSize; i++)
dp[i][0] = dp[i - 1][0] + grid[i][0];
for(i = 1; i < gridRowSize; i++)
for(j = 1; j < gridColSize; j++)
dp[i][j] = MIN(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
return dp[gridRowSize - 1][gridColSize - 1];
}
|