浮生日记
__今天是周日,我好想下去踢球,但是天气不太妙。也是不想学习的一下午,写点博客。
正文
原题链接
题目是很经典的一道动态规划题目,具体思路是借鉴的B站这位小姐姐的
从下往上的分析思路。一开始自己做的时候,用的是一般的贪心算法,卡在了[[-1],[2,3],[1,-1,3]]的用例上,行不通的原因就不做过多解释了。
给出C++代码:
class Solution {
public:
int minimumTotal(vector<vector<int>>& triangle) {
int row = triangle.size();
if(row == 0) return 0;
vector<int> dp(row+1);
for(int i = row - 1; i>=0; i--){
for(int j = 0; j <= i; j++){
dp[j] = min(dp[j],dp[j+1]) + triangle[i][j];
}
}
return dp[0];
}
};