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

  1. 可以从下标0或者1作为起始位置------------dp0 = dp1 = 0。
  2. 一次性可以选择移动1次或者2次,故当下标>=2的时候,到达2有可能是从下标0开始或者下标1开始,cost0 or cost1;到达n,有可能是花费costn-1到达,也有可能花费costn-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];
    }
}
相关推荐
CoderYanger5 分钟前
前端基础——JavaScript(WebAPI)(下篇)
java·开发语言·前端·javascript·程序人生·面试·职场和发展
lisin-lee-cooper14 分钟前
简单聊聊 Spring 框架源码
java·后端·spring
一木 之林21 分钟前
七、一-AI 工程实践、插件化调试与软件交付
java·linux·c++
边境悍匪24 分钟前
蜗牛学苑 Java 智能体学习 Day38|Spring AI Alibaba2 思维导图复盘
java·学习·spring
Co_Hui37 分钟前
Java 静态内部类、非静态内部类、匿名内部类的区别?
java
Wang's Blog1 小时前
Java框架快速入门: Spring Security+OAuth2之自定义认证过滤器实现JSON登录
java·spring·json
小木_.1 小时前
Python 离线识别滑块缺口距离,项目推荐
开发语言·python·滑块识别·人机验证·滑块缺口·缺口识别
liliangcsdn1 小时前
因子权重矩阵处理-因子权重收缩Shrinkage算法的探索
开发语言·python·机器学习
Wang's Blog1 小时前
Java框架快速入门: Spring Security+OAuth2之密码验证规则与自定义注解
java·数据库·spring
一嘴一个橘子2 小时前
java - redis 缓存击穿 - 互斥锁
java