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
    }
}

执行用时&内存分布

相关推荐
勤劳兔码农4 分钟前
iOS开发新手教程:Swift语言与Xcode工具链
ios·xcode·swift
<花开花落>9 小时前
iOS App 测试环境升级,遇到的问题以及解决方法
macos·ios·appium
cpluser9 小时前
在 VS Code 中自动化 Xcode 项目编译和调试
macos·ios·自动化·apple vision pro·xcode
鹿屿二向箔9 小时前
iOS开发-Xcode
macos·ios·xcode
依旧风轻9 小时前
Witness Table 的由来
ios·swift·witness table
依旧风轻9 小时前
Swift 中的方法调用机制
ios·swift·func·v-table·witness table
UestcXiye19 小时前
iOS 练习项目 Landmarks (五):UISwitch 切换展示数据
ios
MobTech袤博科技20 小时前
MobPush iOS端 扩展业务功能设置
macos·ios·cocoa
MobTech袤博科技1 天前
秒验 iOS端如何修改授权页背景
ios·命令模式
分享者花花1 天前
如何从相机的存储卡中恢复原始照片
windows·数码相机·macos·ios·智能手机·电脑·iphone