更新 0746.使用最小花费爬楼梯.md Java代码

添加第一步支付费用版本的Java代码
删除原版本中冗余的代码,已测试代码
添加CPP代码的语法高亮
This commit is contained in:
zhicheng lee
2022-09-06 20:14:12 +08:00
committed by GitHub
parent 0edf01e4a4
commit e498df6ace

View File

@ -66,7 +66,7 @@
所以初始化代码为: 所以初始化代码为:
``` ```CPP
vector<int> dp(cost.size()); vector<int> dp(cost.size());
dp[0] = cost[0]; dp[0] = cost[0];
dp[1] = cost[1]; dp[1] = cost[1];
@ -201,15 +201,32 @@ public:
### Java ### Java
```Java ```Java
// 方式一:第一步支付费用
class Solution { class Solution {
public int minCostClimbingStairs(int[] cost) { public int minCostClimbingStairs(int[] cost) {
if (cost == null || cost.length == 0) { int len = cost.length;
return 0; int[] dp = new int[len + 1];
}
if (cost.length == 1) { // 从下标为 0 或下标为 1 的台阶开始因此支付费用为0
return cost[0]; dp[0] = 0;
dp[1] = 0;
// 计算到达每一层台阶的最小费用
for (int i = 2; i <= len; i++) {
dp[i] = Math.min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
} }
return dp[len];
}
}
```
```Java
// 方式二:第一步不支付费用
class Solution {
public int minCostClimbingStairs(int[] cost) {
int[] dp = new int[cost.length]; int[] dp = new int[cost.length];
dp[0] = cost[0]; dp[0] = cost[0];
dp[1] = cost[1]; dp[1] = cost[1];