#yyds干货盘点# 面试必刷TOP101:最小花费爬楼梯

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# 面试必刷TOP101:最小花费爬楼梯相关的知识,希望对你有一定的参考价值。

1.简述:

描述

给定一个整数数组  ,其中  是从楼梯第个台阶向上爬需要支付的费用,下标从0开始。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。

请你计算并返回达到楼梯顶部的最低花费。

数据范围:数组长度满足  ,数组中的值满足 

示例1

输入:

[2,5,20]

返回值:

5

说明:

你将从下标为1的台阶开始,支付5 ,向上爬两个台阶,到达楼梯顶部。总花费为5
示例2

输入:

[1,100,1,1,1,90,1,1,80,1]

返回值:

6

说明:

你将从下标为 0 的台阶开始。
1.支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。
2.支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。
3.支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。
4.支付 1 ,向上爬一个台阶,到达下标为 7 的台阶。
5.支付 1 ,向上爬两个台阶,到达下标为 9 的台阶。
6.支付 1 ,向上爬一个台阶,到达楼梯顶部。
总花费为 6 。

2.代码实现:

import java.util.*;
public class Solution
public int minCostClimbingStairs (int[] cost)
//dp[i]表示爬到第i阶楼梯需要的最小花费
int[] dp = new int[cost.length + 1];
for(int i = 2; i <= cost.length; i++)
//每次选取最小的方案
dp[i] = Math.min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
return dp[cost.length];


以上是关于#yyds干货盘点# 面试必刷TOP101:最小花费爬楼梯的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# 面试必刷TOP101:岛屿数量

#yyds干货盘点# 面试必刷TOP101:反转字符串

#yyds干货盘点# 面试必刷TOP101:单链表的排序

#yyds干货盘点# 面试必刷TOP101:跳台阶

#yyds干货盘点# 面试必刷TOP101:最长公共子串

#yyds干货盘点# 面试必刷TOP101:二分查找-I