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
相关推荐
折哥的程序人生 · 物流技术专研35 分钟前
第8篇:六大设计原则在工厂模式中的体现
java·设计模式·设计原则·工厂模式·编程进阶·扩充系列
问君能有几多愁~36 分钟前
C++ 数据结构复习笔记
数据结构·c++·笔记
至乐活着1 小时前
深入解析跳表SkipList:原理、实现与性能优化实战
数据结构·算法·跳表·skiplist·java实现
小明bishe181 小时前
计算机毕业设计之基于JAVA的植物科普网站
java·spring boot·spring·架构·课程设计
r_oo_ki_e_1 小时前
Java Map 集合学习笔记
java·笔记·学习
SL-staff2 小时前
智慧园区2000+设备统一管理:JVS-IoT如何降低运维成本40%
java·开发语言·物联网·智慧园区·设备管理·运维优化·jvs-iot
Jerry2 小时前
LeetCode 383. 赎金信
算法
ai产品老杨2 小时前
H264 H265视频分析常见问题和排查清单
人工智能·算法·音视频
咖啡八杯2 小时前
GoF设计模式——模板方法模式
java·后端·spring·设计模式
Jerry2 小时前
LeetCode 454. 四数相加 II
算法