Re: [闲聊] 每日LeetCode

楼主: yam276 ('_')   2023-10-13 16:11:04
※ 引述《Rushia (みけねこ的鼻屎)》之铭言:
: https://leetcode.com/problems/min-cost-climbing-stairs/description
: 746. Min Cost Climbing Stairs
: 给你一个阵列 cost[] 表示每一层的成本,你需要爬楼梯到楼顶,你每次可以从当前
: 位置花费 cost[i] 走1步或2步,你从 0 或 1 出发,求出走到 cost.length 最小要
: 多少 cost。
: 思路:
: 1.动态规划,位置 i 当前的成本只能是两种情况:
: * 往前一阶的最小成本 + cost[i - 1]
: * 往前两阶的最小成本 + cost[i - 2]
: 在这两种情况取较小值就是当前的最小成本以此类推。
思路:
非常教科书式的dp题目
我就用dp阵列了
Code:
impl Solution {
pub fn min_cost_climbing_stairs(cost: Vec<i32>) -> i32 {
let n = cost.len();
let mut dp = vec![0; n];
dp[0] = cost[0];
dp[1] = cost[1];
for i in 2..cost.len() {
dp[i] = cost[i] + std::cmp::min(dp[i - 1], dp[i - 2]);
}
std::cmp::min(dp[n-1], dp[n-2])
}
}

Links booklink

Contact Us: admin [ a t ] ucptt.com