leetcode746-Min Cost Climbing Stairs

题目

给你一个整数数组 cost ,其中 costi 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。

你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。

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

示例 1:

输入:cost = 10,15,20

输出:15

解释:你将从下标为 1 的台阶开始。

  • 支付 15 ,向上爬两个台阶,到达楼梯顶部。
    总花费为 15 。

分析

这道题目很明显用动态规划的思路。我们可以定义dpi为到达第i层楼梯所支付的最小费用,如果要往上爬则要叠加当前楼层的费用。接下来看如何推倒dp,因为可以通过2个台阶或者1个台阶的方式到达,所以要么是dpi-2+costi-2,要么是dpi-1+costi-1,且俩个里面取最小值

java 复制代码
public class minCostClimbingStairs {
	public static void main(String[] args) {
		int[] arr ={1,100,1,1,1,100,1,1,100,1};
		System.out.println(minCost(arr));
	}
	public static int minCost(int[] arr) {
		int len = arr.length;
		int[] dp = new int[len+1];
		for(int i = 2;i<=len;i++) {
			dp[i] = Math.min(dp[i-2]+arr[i-2],dp[i-1]+arr[i-1]);
		}
		return dp[len];
	}
}
l
相关推荐
再吃一根胡萝卜7 小时前
08 · 前端:Vue3 + SSE 流式与执行链路可视化
面试
辰烨chenye7 小时前
LeetCode Hot 100 题解 · 普通数组篇
算法·leetcode·职场和发展
再吃一根胡萝卜7 小时前
03 · 后端:FastAPI 与分层架构
面试
lhldsg10 小时前
全民健身解决方案小程序开发:从0到1的技术实战
java·数据库·需求分析
jason成都10 小时前
Spring WebFlux 适配达梦新方案|dm‑r2dbc:Netty 异步传输的实验性 R2DBC 驱动
java·后端·spring
泡海椒10 小时前
内置SPI函数库详解:JQuick-Java Builtin工具类实战用法
java·开发语言·python
hqyjzsb10 小时前
零 AI 项目经验,学 Python 转型 AI 的正确顺序是什么?
开发语言·人工智能·python·算法·职场和发展·数据挖掘·数据分析
辰烨chenye10 小时前
LeetCode Hot 100 题解 · 二分篇
java·算法·leetcode
微功夫信息技术11 小时前
分层多智能体强化学习驱动的非急救转运公平 - 效率统一调度系统研究与实践
人工智能·学习·算法·动态规划
小羊没烦恼!11 小时前
Hello Web API系列教程——Web API与国际化
java·服务器·前端·javascript·php