​LeetCode解法汇总746. 使用最小花费爬楼梯

news/2024/7/5 2:15:16

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台


描述:

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

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

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

示例 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 。

提示:

  • 2 <= cost.length <= 1000
  • 0 <= cost[i] <= 999

解题思路:

典型动态规划的思路,dp[i]代表到达i位置的最低成本。

代码:

class Solution {
public:
    int minCostClimbingStairs(vector<int> &cost)
    {
        vector<int> dp(cost.size() + 1);
        dp[0] = 0;
        dp[1] = 0;
        for (int i = 2; i <= cost.size(); i++)
        {
            dp[i] = min(dp[i - 2] + cost[i - 2], dp[i - 1] + cost[i - 1]);
        }
        return dp[cost.size()];
    }
};


http://lihuaxi.xjx100.cn/news/1901081.html

相关文章

Electron 打开开发者工具 devtools

Electron 打开开发者工具 devtools 在electron开发的过程中&#xff0c;可以用代码控制打开自带chrome的devtools开发者工具&#xff0c;进而调试渲染教程页面。 平时&#xff0c;我们利用chrome要调试网页的时候&#xff0c;按F12&#xff08;mac下面是shift花i&#xff09;…

c语言 关于逻辑运算符

C语言中的逻辑运算符是用于进行逻辑运算的运算符&#xff0c;它们可以组合多个条件并生成一个布尔值&#xff08;真或假&#xff09;。C语言提供了三种逻辑运算符&#xff1a; 逻辑与运算符&#xff08;&&&#xff09;&#xff1a;只有当所有条件都为真时&#xff0c;…

基于风险的测试与失效模式和影响分析:确保产品质量的关键策略

引言&#xff1a; 在软件开发过程中&#xff0c;测试是确保产品质量的重要环节。传统的测试方法往往只关注功能的正确性&#xff0c;而忽视了潜在的风险和失效模式。然而&#xff0c;随着软件系统的复杂性和可靠性要求的提高&#xff0c;仅仅依靠功能测试已经无法满足需求。因此…

Python装饰器的用途和实例

说明 装饰器是Python中非常有用的工具&#xff0c;它们可以用于修改或扩展函数或类的行为&#xff0c;而无需修改其原始定义。装饰器通常是一个函数&#xff0c;它接受一个函数作为参数&#xff0c;并返回一个新的函数或类。下面我们将介绍一些常见的装饰器用途和示例。 记录日…

云渲染服务器是什么东西?视频云渲染需不需要购买服务器吗?

随着数字媒体产业的兴起&#xff0c;云渲染技术逐渐成为电影、动画、视频游戏等领域中的关键技术。但云渲染究竟是什么&#xff0c;以及我们是否真的需要在视频和动画制作中使用云渲染服务器?接下来&#xff0c;我们将深入了解这一在互联网上被传得颇为神秘的技术。 一、云渲染…

JVM基础扫盲

什么是JVM JVM是Java设计者用于屏蔽多平台差异&#xff0c;基于操作系统之上的一个"小型虚拟机"&#xff0c;正是因为JVM的存在&#xff0c;使得Java应用程序运行时不需要关注底层操作系统的差异。使得Java程序编译只需编译一次&#xff0c;在任何操作系统都可以以相…

springboot(ssm儿童慈善管理系统 儿童捐赠平台 Java系统

springboot(ssm儿童慈善管理系统 儿童捐赠平台 Java系统 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或8.0&#xff09; 数…

常见几种加密算法的Python实现

一、MD5加密 全称&#xff1a;MD5消息摘要算法&#xff08;英语&#xff1a;MD5 Message-Digest Algorithm&#xff09;&#xff0c;一种被广泛使用的密码散列函数&#xff0c;可以产生出一个128位&#xff08;16字节&#xff09;的散列值&#xff08;hash value&#xff09;&…