从倒数第二层开始遍历,将倒数第二层到第一层每一行的每个元素变成和下面相邻两个数字的最小值与元素本身最小值和,这样到最顶点的时候就是最小路径和。
//状态转移方程
t[i][j] = min(t[i + 1][j], t[i + 1][j + 1]) + t[i][j]
class Solution {
public:
int minimumTotal(vector<vector<int>>& t) {
int size = t.size();
for (int i = size - 2; i >= 0; i--) {
for (int j = 0; j < t[i].size(); j++) {
t[i][j] = min(t[i + 1][j], t[i + 1][j + 1]) + t[i][j];
}
}
return t[0][0];
}
};