746. 使用最小花费爬楼梯 (Swift版本)

题目

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

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

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

限制条件

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

Show me the code

swift 复制代码
class Solution {
    var cacheMap = [Int: Int]()
    func minCostClimbingStairs(_ cost: [Int]) -> Int {
        return minCostClimbingStairs(cost, cost.count)
    }

    func minCostClimbingStairs(_ cost: [Int], _ prefixCount: Int) -> Int {
        if let cache = cacheMap[prefixCount] {
            return cache
        }
        if prefixCount == 2 {
            return min(cost[0], cost[1])
        }
        if prefixCount == 3 {
            return min(cost[0] + cost[2], cost[1])
        }
        let ret = min(minCostClimbingStairs(cost, prefixCount - 1) + cost[prefixCount - 1], minCostClimbingStairs(cost, prefixCount - 2) + cost[prefixCount - 2])
        cacheMap[prefixCount] = ret
        return ret
    }
}

执行用时&内存分布

相关推荐
GitLqr7 小时前
数码洞察 | Apple VS DMA、三星新品、Android 16KB Page Size
android·ios·samsung
钟智强12 小时前
Flutter 前端开发中的常见问题全面解析
android·前端·flutter·ios·前端框架·dart
SoaringHeart13 小时前
SwiftUI研究:原生路由导航重构封装研究
前端·swiftui·swift
YungFan15 小时前
iOS26适配指南之UITabBarController
ios·swift
我唔知啊15 小时前
OC底层原理4:KVO(本质、动态生成子类、如何手动触发)
ios
iReaShare16 小时前
如何在 iPad 上批量删除应用:5 种简单方法
ios
Digitally19 小时前
如何将 iPhone 备份到云端:完整指南
ios·iphone
2501_9159184119 小时前
iOS App 安全加固全流程:静态 + 动态混淆对抗逆向攻击实录
android·ios·小程序·https·uni-app·iphone·webview
瓜子三百克20 小时前
RxSwift的介绍与使用
ios·swift·rxswift
东坡肘子21 小时前
变暗的 Liquid Glass 和消失的 Apple Intelligence | 肘子的 Swift 周报 #093
swiftui·swift·apple