-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path120-triangle.cpp
More file actions
25 lines (22 loc) · 823 Bytes
/
120-triangle.cpp
File metadata and controls
25 lines (22 loc) · 823 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
#include <vector>
using namespace std;
class Solution {
public:
int minimumTotal(vector<vector<int>>& triangle) {
int N = triangle[triangle.size()-1].size();
int *best_prev_row = new int[N];
for (int elem = 0; elem < N; ++elem) {
best_prev_row[elem] = triangle[triangle.size()-1][elem];
}
for (int row = triangle.size() - 2; row >= 0; --row) {
for (int elem = 0; elem < triangle[row].size(); ++elem) {
if (best_prev_row[elem] < best_prev_row[elem + 1]) {
best_prev_row[elem] = triangle[row][elem] + best_prev_row[elem];
} else {
best_prev_row[elem] = triangle[row][elem] + best_prev_row[elem+1];
}
}
}
return best_prev_row[0];
}
};