class Solution {
public:
int minimumTotal(vector<vector<int>>& triangle) {
int sz = triangle.size();
vector<int> dp(sz+1,0);
for(int i = sz-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];
}
};