class Solution {
public int minCostClimbingStairs(int[] cost) {
int f1 = 0,f2 = 0;
for(int i = 0; i < cost.length; i++){
int temp = cost[i] + Math.min(f1, f2);
f2 = f1;
f1 = temp;
}
return Math.min(f1, f2);
}
}
我从头到尾找,找出花费最小的。
当前的楼梯花费就是cost[i],从头开始,所以前两个楼梯的最小花费就是0,然后开始爬楼梯,计算最小花费。
最小花费 = 当前楼梯花费 + min(之前爬一个或两个楼梯最小花费)。