-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprogram.cpp
More file actions
31 lines (29 loc) · 811 Bytes
/
program.cpp
File metadata and controls
31 lines (29 loc) · 811 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "../include/pre.h"
int minPathSum(vector<vector<int>>& grid)
{
int M = grid.size();
int N = grid[0].size();
vector<vector<int>> minsGrid = grid; //copy make
for (int i = M - 2; i != -1; i--)
minsGrid[i][N - 1] = minsGrid[i + 1][N - 1] + minsGrid[i][N - 1];
for (int j = N - 2; j != -1; j--)
minsGrid[M - 1][j] = minsGrid[M - 1][j + 1] + minsGrid[M - 1][j];
for (int i = M - 2; i != -1; i--)
{
for (int j = N - 2; j != -1; j--)
{
minsGrid[i][j] = std::min(minsGrid[i][j + 1], minsGrid[i + 1][j]) + minsGrid[i][j];
}
}
return minsGrid[0][0];
}
int main()
{
vector<vector<int>> test = {
{1, 2, 3,},
{1, 2, 3,},
{1, 2, 3,},
};
cout << minPathSum(test) << endl;
return 0;
}