优解:使用O(n) space
规律:从top往bottom递归的话,会发现不能只用O(n) space,因为同一层中 前面的值更新会影响到后面
从bottom往top递归的话可以避免这个问题。
public class Solution {
public int minimumTotal(List<List<Integer>> triangle) {
int sum[] = new int[triangle.size()+1];
for (int i = triangle.size() - 1; i >= 0 ; i --){
for (int j = 0; j <= i; j ++){
sum[j] = Math.min(sum[j], sum[j+1]) + triangle.get(i).get(j);
}
}
return sum[0];
}
}