https://oj.leetcode.com/problems/triangle/
类似用DP的方法迭代以及节省空间的算法。从三角形底部将最小累加到上层即可。
1 class Solution { 2 public: 3 int n; 4 vector<vector<int> > tr; 5 int minimumTotal(vector<vector<int> > &triangle) { 6 tr=triangle; 7 n=tr.size(); 8 vector <int> a(n+1,0); 9 for (int i=n-1;i>=0;i--){ 10 vector <int> cur=tr[i]; 11 for (int j=0;j<=i;j++){ 12 cur[j]+=min(a[j],a[j+1]); 13 } 14 a=cur; 15 } 16 return a[0]; 17 } 18 };