网站可以自己建立吗,wordpress 伪静态 win,宁夏网站开发,t购物网站开发前景题目描述#xff1a;
给你一个整数数组 cost #xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用#xff0c;即可选择向上爬一个或者两个台阶。
你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。
请你计算并返回达到楼梯顶部的最低…题目描述
给你一个整数数组 cost 其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用即可选择向上爬一个或者两个台阶。
你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。
请你计算并返回达到楼梯顶部的最低花费。
初始代码
class Solution {public int minCostClimbingStairs(int[] cost) {}
}
示例1 输入cost [10,15,20]
输出15
解释你将从下标为 1 的台阶开始。
- 支付 15 向上爬两个台阶到达楼梯顶部。
总花费为 15 。 示例2 输入cost [1,100,1,1,1,100,1,1,100,1]
输出6
解释你将从下标为 0 的台阶开始。
- 支付 1 向上爬两个台阶到达下标为 2 的台阶。
- 支付 1 向上爬两个台阶到达下标为 4 的台阶。
- 支付 1 向上爬两个台阶到达下标为 6 的台阶。
- 支付 1 向上爬一个台阶到达下标为 7 的台阶。
- 支付 1 向上爬两个台阶到达下标为 9 的台阶。
- 支付 1 向上爬一个台阶到达楼梯顶部。
总花费为 6 。 参考答案
class Solution {public int minCostClimbingStairs(int[] cost) {// 由于可能从下标为0或者1开始出发 所以前两个初始值为0int[] dp new int[cost.length 1];dp[0] dp[1] 0;for (int i 2; i dp.length; i) {dp[i] Math.min(dp[i - 1] cost[i - 1], dp[i - 2] cost[i - 2]);}return dp[cost.length];}
}
class Solution {public int minCostClimbingStairs(int[] cost) {// 既然每次只能爬一个或者两个台阶 那么最后返回的要么是倒一或者倒二索引下标int l cost.length;for (int i 2; i l; i) {cost[i] Math.min(cost[i - 1], cost[i - 2]);}return Math.min(cost[l - 1], cost[l - 2]);}
}