思路:
用一个类似DP的bottom up策略, 当前层当前节点的最小值应该是它两个孩子的最小值加上他自己的值.
int minimumTotal(vector<vector<int>>& triangle) {
if (triangle.empty())
return 0;
vector<int> bot(triangle.back());
for (int i = n - 2; i >= 0; i--)
for (int j = 0; j <= i; j++)
bot[j] = min(bot[j], bot[j + 1]) + triangle[i][j];
return bot[0];
}