LeetCode 746:使用最小花费爬楼梯 —— 题解笔记

LeetCode 746:使用最小花费爬楼梯 ------ 题解笔记

🔗 题目链接

👉 https://leetcode.cn/problems/min-cost-climbing-stairs/


📖 内容概要

给定一个数组 cost,其中 cost[i] 表示登上第 i 阶楼梯所需支付的费用。

你可以从第 0 阶或第 1 阶开始,支付该台阶的费用后继续向上

求到达顶层(楼顶)的最小花费。

✅ 动态规划

✅ 一维 DP

✅ 与「爬楼梯」「斐波那契」高度相似


💡 解题思路

一、状态定义(非常关键)

java 复制代码
dp[i] = 到达第 i 阶楼梯的最小花费

⚠️ 注意:

到达第 i 阶时,还没有支付 cost[i]


二、状态转移方程

到达第 i 阶,只能来自:

  • i-1 阶,再跨 1 步
  • i-2 阶,再跨 2 步
java 复制代码
dp[i] = min(
    dp[i-1] + cost[i-1],
    dp[i-2] + cost[i-2]
)

三、初始条件

java 复制代码
dp[0] = 0; // 起点
dp[1] = 0; // 可以从第 1 阶开始

四、最终结果

java 复制代码
return dp[n];

楼顶在第 n 阶(数组外)


✅ AC 代码(Java)

java 复制代码
class Solution {
    public int minCostClimbingStairs(int[] cost) {
        int n = cost.length;
        int[] dp = new int[n + 1];

        dp[0] = 0;
        dp[1] = 0;

        for (int i = 2; i <= n; i++) {
            dp[i] = Math.min(
                dp[i - 1] + cost[i - 1],
                dp[i - 2] + cost[i - 2]
            );
        }
        return dp[n];
    }
}

⏱️ 复杂度分析

指标 复杂度
时间复杂度 O(n)
空间复杂度 O(n)(可优化为 O(1))

📌 三题横向对比

题目 本质 状态转移 初始条件
509. 斐波那契数(Fibonacci Number) 递推 f(i)=f(i-1)+f(i-2) f(0)=0, f(1)=1
70. 爬楼梯(Climbing Stairs) 方案数 dp[i]=dp[i-1]+dp[i-2] dp[0]=1, dp[1]=1
746. 最小花费爬楼梯 最小代价 dp[i]=min(dp[i-1]+c[i-1], dp[i-2]+c[i-2]) dp[0]=0, dp[1]=0

✅ 三者关系图

复制代码
Fibonacci  →  爬楼梯  →  最小花费爬楼梯
(基础递推)(组合计数)(带权最优解)

👉 这是 DP 学习的标准演进路线


✅ 空间优化(进阶)

java 复制代码
int prev2 = 0, prev1 = 0;
for (int i = 2; i <= cost.length; i++) {
    int curr = Math.min(prev1 + cost[i-1], prev2 + cost[i-2]);
    prev2 = prev1;
    prev1 = curr;
}
return prev1;

📌 面试一句话总结

这道题是"带权重的爬楼梯",状态转移和斐波那契几乎一样,只是从求和变成了取最小值。

相关推荐
土司大王6 小时前
LeetCode hot100——对称二叉树
算法·leetcode·职场和发展
sali-tec6 小时前
C# 基于OpenCv的视觉工作流-章106-差值追踪
图像处理·人工智能·opencv·算法·计算机视觉
Nontee7 小时前
MySQL 插入冲突了怎么办?两种处理方式入门笔记
数据库·笔记·mysql
Navigator_Z7 小时前
LeetCode //C - 1208. Get Equal Substrings Within Budget
c语言·算法·leetcode
手写码匠7 小时前
Dify 多 Agent 工具权限与安全沙箱实战:让智能体“有能力,但不越权“
人工智能·深度学习·算法·aigc
黎阳之光7 小时前
打破堆场感知黑盒:黎阳之光视频孪生,构建港口码头网格化透明管控新体系
大数据·人工智能·算法·安全·数字孪生
浔溺7 小时前
al+大数据每日学习笔记26
笔记·学习
丘山一郎7 小时前
Spring 中的IOC控制反转 和DI依赖注入
java·后端·spring
码视野7 小时前
基于 Spring Boot + Vue3 的【大学英语四六级 (CET-4/6) 作文智能评分与句式润色系统】设计与实现(含PRD/三端高保真源码/大屏)
java·前端·人工智能·spring boot·后端·vue3
MetaLite7 小时前
Spring-AOP自调用为什么失效-AopContext真能解决吗
java·后端·spring