动态规划
class Solution {
public:
int minimumTotal(vector<vector<int>>& triangle) {
vector<int> dp(triangle.size(),0);
for(int i=0;i<triangle.size();++i){
dp[i]=triangle[i][i]+dp[i-1];
for(int k=i-1;k>0;--k)
dp[k]=min(dp[k-1],dp[k])+triangle[i][k];
if(i) dp[0]+=triangle[i][0];
}
int ans=0x3f3f3f3f;
for(int i=0;i<triangle.size();++i)
ans=min(ans,dp[i]);
return ans;
}
};