题目链接

使用最小花费爬楼梯

题目描述

image.png

实现代码

思路:首先需要理解题意,对于cost[n]而言,给出了0 - n-1的楼梯花费,要我们给出爬到n位置的最小花费;
记:dp[i]表示爬到i楼梯位置的最小花费,则有状态转移方程:

dp[i] = min(dp[i-1] + cost[i-1], dp[i-2] + cost[i-2]);

实现代码如下:

  1. class Solution {
  2. public int minCostClimbingStairs(int[] cost) {
  3. int len = cost.length;
  4. int[] dp = new int[len+1];
  5. dp[0] = 0;
  6. dp[1] = 0;
  7. dp[2] = Math.min(cost[0], cost[1]);
  8. for(int i=3; i<=len; i++) {
  9. dp[i] = Math.min(dp[i-1] + cost[i-1], dp[i-2] + cost[i-2]);
  10. }
  11. return dp[len];
  12. }
  13. }