- 问题来源
- 问题简介
解题思路
假设共有V个点。
时间复杂度 | 空间复杂度 |
---|---|
O(V) | O(1) |
Code
class Solution {
public:
int minimumTotal(vector<vector<int>>& triangle) {
int res=0;
for(int i=1;i<triangle.size();i++){
for(int j=0;j<triangle[i].size();j++){
if(j==0){
triangle[i][j]+=triangle[i-1][j];
}
else if(j==triangle[i].size()-1){
triangle[i][j]+=triangle[i-1][j-1];
}
else{
int mini;
if(triangle[i-1][j]>triangle[i-1][j-1])
mini=triangle[i-1][j-1];
else
mini=triangle[i-1][j];
triangle[i][j]+=mini;
}
}
}
res=triangle[triangle.size()-1][0];
for(int i=1;i<triangle[triangle.size()-1].size();i++){
res=min(res,triangle[triangle.size()-1][i]);
}
return res;
}
};
近期评论