- 1 class Solution {
- 2 public: 3 int minPathSum(vectorint >> &grid) {
- 4 int row = grid.size(),
- col = grid[0].size();
- 5 vector < int > dp(col);
- 6 7 dp[0] = grid[0][0];
- 8
- for (int i = 0; i < row; i++) {
- 9
- for (int j = 0; j < col; j++) {
- 10
- if (!i && !j) {
- 11 dp[j] = grid[i][j];
- 12
- }
- 13
- else if (!i && j) {
- 14 dp[j] = dp[j - 1] + grid[i][j];
- 15
- }
- 16
- else if (i && !j) {
- 17 dp[j] += grid[i][j];
- 18
- }
- 19
- else {
- 20 dp[j] = min(dp[j], dp[j - 1]) + grid[i][j];
- 21
- }
- 22
- }
- 23
- }
- 24 25
- return dp[col - 1];
- 26
- }
- 27
- };
来源: