题目链接
题目描述
实现代码
思路:首先需要理解题意,对于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];}}
