考虑到成本的动态规划问题,问的是最终花费,而不是情况个数。
仍然是滚动数组动态规划,屡试不爽。
int minCostClimbingStairs(int* cost, int costSize){
int a = 0, b = 0, c = 0;
for(int i = 2; i <= costSize; ++i){
c = a + cost[i-2] < b + cost[i-1] ? a + cost[i-2] : b + cost[i-1];
a = b;
b = c;
}
return c;
}