120. Triangle
Last updated
Last updated
class Solution {
public:
int minimumTotal(vector<vector<int>>& triangle) {
if (triangle.size() == 0) {
return 0;
}
int n = triangle.size();
for (int r = 1; r < n; r++) {
//對角線
triangle[r][0] += triangle[r - 1][0];
triangle[r][r] += triangle[r - 1][r - 1];
//中間
for (int c = 1; c < triangle[r].size() - 1; c++) {
triangle[r][c] = triangle[r][c] + min(triangle[r - 1][c - 1], triangle[r - 1][c]);
}
}
int minVal = INT_MAX;
for (int c = 0; c < triangle[n - 1].size(); c++) {
minVal = min(minVal, triangle[n - 1][c]);
}
return minVal;
}
};