题目链接
题目描述
实现代码
思路:首先需要理解题意,对于cost[n]而言,给出了0 - n-1的楼梯花费,要我们给出爬到n位置的最小花费;
记:dp[i]表示爬到i楼梯位置的最小花费,则有状态转移方程:
dp[i] = min(dp[i-1] + cost[i-1], dp[i-2] + cost[i-2]);
实现代码如下:
class Solution {
public int minCostClimbingStairs(int[] cost) {
int len = cost.length;
int[] dp = new int[len+1];
dp[0] = 0;
dp[1] = 0;
dp[2] = Math.min(cost[0], cost[1]);
for(int i=3; i<=len; i++) {
dp[i] = Math.min(dp[i-1] + cost[i-1], dp[i-2] + cost[i-2]);
}
return dp[len];
}
}