news 2026/6/15 4:16:54

可视化图解算法74:最小花费爬楼梯

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
可视化图解算法74:最小花费爬楼梯

1.题目

描述

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

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

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

数据范围:数组长度满足 1≤n≤105 ,数组中的值满足 1 ≤cost~i~≤10^4^

示例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. 题解思路

本题求解的是最小花费,因此需要在两条路径中选取最小的值。解题思路如下:

如果文字描述的不太清楚,你可以参考视频的详细讲解。

  • Python编码:https://www.bilibili.com/cheese/play/ep1375304https://www.bilibili.com/cheese/play/ep1375304

  • Java编码:https://www.bilibili.com/cheese/play/ep1368530https://www.bilibili.com/cheese/play/ep1368530

  • Golang编码:https://www.bilibili.com/cheese/play/ep1368730https://www.bilibili.com/cheese/play/ep1368730

3.编码实现

核心代码如下:

//1.定义状态. i:第i个台阶; dp[i]:到达第i个台阶的最小花费 dp := make([]int, len(cost)+1) //2.初始化边界条件: dp[1] = min(0, cost[0]) // dp[1]=cost[0],到达第1阶的费用(从第0阶上来或者从第1阶就地开始); dp[2] = min(cost[0], cost[1]) //dp[2]=min(cost[0],cost[1]),从下标为 0 或下标为 1 的台阶爬到第2个台阶的费用; //3.确定递推公式: for i := 3; i <= len(cost); i++ { pre1 := dp[i-1] + cost[i-1] //到 i-1个台阶的费用 + 第 i-1 个台阶的费用 pre2 := dp[i-2] + cost[i-2] //到 i-2个台阶的费用 + 第 i-2 个台阶的费用 // 到i个台阶的费用:来自于 i-1、i-2(取最小值) dp[i] = min(pre1, pre2) } return dp[len(cost)] } func min(a, b int) int { if a >= b { return b } return a }

具体完整代码你可以参考下面视频的详细讲解。

  • Python编码:https://www.bilibili.com/cheese/play/ep1375304https://www.bilibili.com/cheese/play/ep1375304

  • Java编码:https://www.bilibili.com/cheese/play/ep1368530https://www.bilibili.com/cheese/play/ep1368530

  • Golang编码:https://www.bilibili.com/cheese/play/ep1368730https://www.bilibili.com/cheese/play/ep1368730

4.总结

本题的关键是确定变量i、dp数组的含义,如果理解了他们的含义,就能推到出递推公式,进而写出代码。

《数据结构与算法》深度精讲课程正式上线啦!7 大核心算法模块全解析:

✅ 链表

✅ 二叉树

✅ 二分查找、排序

✅ 堆、栈、队列

✅ 回溯算法

✅ 哈希算法

✅ 动态规划

无论你是备战笔试面试、提升代码效率,还是突破技术瓶颈,这套课程都将为你构建扎实的算法思维底座。🔥立即加入学习打卡,与千名开发者共同进阶!

  • Python编码实现:https://www.bilibili.com/cheese/play/ss897667807https://www.bilibili.com/cheese/play/ss897667807

  • Java编码实现:https://www.bilibili.com/cheese/play/ss161443488https://www.bilibili.com/cheese/play/ss161443488

  • Golang编码实现:https://www.bilibili.com/cheese/play/ss63997https://www.bilibili.com/cheese/play/ss63997

对于LeetCode数据结构与算法,我们总结了一套【可视化+图解】方法,依据此方法来解决相关问题,算法变得易于理解,写出来的代码可读性高也不容易出错。具体也可以参考视频详细讲解。

今日佳句:知之者不如好之者,好知之者不如乐之者。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 12:56:50

SpringCloud —— Sentinel详解

一、前言在前面的课程中&#xff0c;我们可以发现一个问题&#xff0c;就是即使是低耦合的微服务架构&#xff0c;在微服务和微服务之间依然是有耦合的&#xff0c;比如相互之间的远程调用&#xff0c;这就导致一个微服务出现异常&#xff08;不一定是崩溃&#xff0c;也有可能…

作者头像 李华
网站建设 2026/6/15 13:51:48

解决鸿蒙PC命令行编译 macOS 上 cp 命令参数冲突问题

解决鸿蒙PC命令行编译 macOS 上 cp 命令参数冲突问题 问题背景 在 macOS 系统上编译 OpenHarmony PC 命令行 项目时&#xff0c;运行构建脚本 build.sh 遇到了以下错误&#xff1a; cp: the -R and -r options may not be specified together这个错误导致后续的构建流程无法…

作者头像 李华
网站建设 2026/6/15 5:07:40

COMSOL模拟相场锂枝晶:相场+浓度+电势的联合仿真

comsol模拟相场锂枝晶—相场浓度电势。 此案例为文献复现&#xff0c;含视频讲解。「玩COMSOL的老司机都懂&#xff0c;搞锂枝晶模拟最酸爽的就是相场、浓度、电势三场耦合。今天这个案例直接扒了文献里的核心算法&#xff0c;带大家手把手搭个能跑出枝晶分叉的模型&#xff0c…

作者头像 李华
网站建设 2026/6/15 16:37:10

AI大模型训练师:破解AI与人类沟通障碍,高薪岗位全解析

文章介绍了AI大模型训练师这一新兴职业&#xff0c;他们负责解决AI与人类之间的沟通障碍&#xff0c;将模糊需求转化为AI能理解的清晰指令。由于市场供需失衡&#xff0c;该职业薪资优厚&#xff0c;部分年薪可达45万。训练师工作包括数据管理、模型训练、评估迭代和业务落地四…

作者头像 李华
网站建设 2026/6/15 12:28:53

测试思维创新:从技术执行到价值创造的范式转移

在人工智能与云原生技术重塑软件研发格局的2025年&#xff0c;软件测试正站在历史性的转折点。传统以缺陷发现为核心的测试思维已难以应对敏捷开发、持续交付与复杂系统稳定性的多重挑战。本文旨在探讨测试思维创新的核心维度&#xff0c;提出从“质量控制”到“质量赋能”的思…

作者头像 李华
网站建设 2026/6/15 12:40:33

从业务痛点出发 - 为什么需要多智能体协作?

想象这样一个场景&#xff1a;周一早上9点&#xff0c;某制造企业的项目经理李明收到一个紧急任务——公司决定开发一套新的ERP系统&#xff0c;预算300万元&#xff0c;需要12个月完成。李明深吸一口气&#xff0c;开始了他漫长的一天&#xff1a;9:30-10:30&#xff1a;找技术…

作者头像 李华