class Solution {
public:
int minimumTotal(vector<vector<int>>& triangle) {
int n = triangle.size();
vector<vector<int>> sum(n,vector<int>(n));
sum[0][0]=triangle[0][0];
for( int i =1;i<triangle.size();i++){
sum[i][0]=sum[i-1][0]+triangle[i][0];
for(int j=1;j<i;j++){
sum[i][j]=min(sum[i-1][j-1],sum[i-1][j])+triangle[i][j];
}
sum[i][i]=sum[i-1][i-1]+triangle[i][i];
}
return *min_element(sum[n-1].begin(),sum[n-1].end());
}
};
和上一个博客一样的思路:(动态规划都一个思路)
(1)申请一个空间进行记录
(2)初始化一些特殊变量
(3)对普通变量进行迭代,找到递推方程
最后返回