[746] 使用最小花费爬楼梯

  1. 可以从下标0或者1作为起始位置------------dp[0] = dp[1] = 0。
  2. 一次性可以选择移动1次或者2次,故当下标>=2的时候,到达2有可能是从下标0开始或者下标1开始,cost[0] or cost[1];到达n,有可能是花费cost[n-1]到达,也有可能花费cost[n-2]到达。取最小值。
java 复制代码
class Solution {
    public int minCostClimbingStairs(int[] cost) {
        int n = cost.length;
        int[] dp = new int[n+1];
        dp[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];
    }
}

优化

看到当前的结果计算的时候,只需要上一个和上两个的值,所有使用"滚动数组"的思路。

java 复制代码
class Solution {
    public int minCostClimbingStairs(int[] cost) {
        int n = cost.length;
        int[] dp = new int[n+1];
        dp[0]=dp[1]=0;
        int dp1 = 0;
        int dp2 = 0;
        for(int i=2;i<=n;i++){
            dp[i] = Math.min(dp2+cost[i-1], dp1+cost[i-2]);
            dp1 = dp[i-1];
            dp2 = dp[i];
        }
        return dp[n];
    }
}
相关推荐
可峰科技2 分钟前
qt配置ros2环境,简单版本
开发语言·qt
David爱编程5 分钟前
指令重排与内存屏障:并发语义的隐形守护者
java·后端
郝学胜-神的一滴26 分钟前
C++ Core Guidelines 核心理念
开发语言·c++·设计模式·代码规范
朱砂绛38 分钟前
【大模型本地运行与部署框架】Ollama的API交互
开发语言·lua·交互
Pure_Eyes1 小时前
go 常见面试题
开发语言·后端·golang
ZZHow10241 小时前
Java项目-苍穹外卖_Day1
java·spring boot·web
minji...1 小时前
C++ string自定义类的实现
开发语言·c++
带刺的坐椅2 小时前
老码农教你 Solon Web Context-Path 的两种配置方式
java·nginx·tomcat·web·solon
ZZHow10242 小时前
Java项目-苍穹外卖_Day2
java·spring boot·web
float_六七2 小时前
Spring Boot 3为何强制要求Java 17?
java·spring boot·后端