Advertisement

LeetCode746最小花费爬楼梯(动态规划)

阅读量:

原理

  1. 问题分析与状态定义 * 题目提供了一个数组 cost,用于表示每一阶楼梯所需的花费,每次可以选择向上攀登 1 阶或 2 阶楼梯,目标是计算抵达楼梯顶部所需的最小总花费。设定状态 dp[i] 表示抵达第 i 阶楼梯所需的最低成本。
    • 由于可以从第 i - 1 阶跨出一步或者从第 i - 2 阶跨出两步到达第 i 阶,因此抵达该阶的最小花费需比较两种情形:一种是抵达前一阶(即 i - 1 阶)的最小花费加上该阶本身的费用 cost[i - 1];另一种是抵达前两阶(即 i - 2 阶)的最小花费加上该阶本身的费用 cost[i - 2]。通过比较这两种情况得出的较小值,即可确定状态转移方程。
  2. 边界条件确定 * 对于第一阶楼梯(即第 0 阶),初始状态下认为无需任何花费即可到达,因此将 dp[0] = 0 设定为初始值。
    • 第二阶楼梯(即第 1 阶)同样可以直接从起点抵达,所需花费也为零,故有 dp[1] = 0。上述两个边界条件为后续动态规划过程提供了必要的初始参考值。

步骤

  1. 动态规划数组初始化 * 构建一个长度为 cost.size() + 1vector 类型数组 dp,其作用是记录抵达每一级台阶所需的最

全部评论 (0)

还没有任何评论哟~