class Solution {
public:
int minimumTotal(vector<vector<int> > &triangle) {
vector<int> res2;
res2.resize(triangle.size());
res2[0]=triangle[0][0];
for(int i=1;i<triangle.size();i++)
{
int res2_j_1=0,res2_j=res2[0];
for(int j=0;j<triangle[i].size();j++)
{
res2_j_1=res2_j;
res2_j=res2[j];
if(j==0)
res2[j]=res2_j+triangle[i][j];
else
if(j==triangle[i].size()-1)
res2[j]=res2_j_1+triangle[i][j];
else
res2[j]=min(res2_j_1,res2_j)+triangle[i][j];
}
}
int min=INT_MAX;
for(int i=0;i<res2.size();i++)
if(res2[i]<min)
min=res2[i];
return min;
}
};
过程还算顺利,但是不知道这满不满足空间复杂度为o(n)的要求。。。时空复杂度不太会算
Triangle
最新推荐文章于 2024-07-22 16:27:42 发布