动态规划_最小花费爬楼

在这里插入图片描述

//给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 
//
// 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 
//
// 请你计算并返回达到楼梯顶部的最低花费。 
//
// 
//
// 示例 1: 
//
// 
//输入:cost = [10,15,20]
//输出:15
//解释:你将从下标为 1 的台阶开始。
//- 支付 15 ,向上爬两个台阶,到达楼梯顶部。
//总花费为 15 。
// 
//
// 示例 2: 
//
// 
//输入:cost = [1,100,1,1,1,100,1,1,100,1]
//输出:6
//解释:你将从下标为 0 的台阶开始。
//- 支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。
//- 支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。
//- 支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。
//- 支付 1 ,向上爬一个台阶,到达下标为 7 的台阶。
//- 支付 1 ,向上爬两个台阶,到达下标为 9 的台阶。
//- 支付 1 ,向上爬一个台阶,到达楼梯顶部。
//总花费为 6 。
// 
//
// 
//
// 提示: 
//
// 
// 2 <= cost.length <= 1000 
// 0 <= cost[i] <= 999 
// 
//
// Related Topics 数组 动态规划 👍 1382 👎 0


//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    /**
     * 给出一个数组为cost[],它长度为n,那么它可达到数组length + 1层或length + 2层;
     * 这个终点具体指什么说得很明白,由示例可知,爬楼梯的终点就是指length + 1层即为终点
     *
     * @param cost
     * @return
     */
    public int minCostClimbingStairs(int[] cost) {
        //到达第0层的台阶因不需要动因而耗费0
        int fn2 = 0;
        //到达第1层的台阶,因为可以选择直接从第1阶开始,因而这种方式到达第1阶,是不耗费的
        int fn1 = 0;
        //到达第n层所需的最小耗费;n最大为leng + 1,即此次爬楼梯的终点目标层数
        int fn = 0;
        //下标为cost[i]的花费,指的是从第(i + 1)层向上爬所需的耗费
        for (int n = 2; n < cost.length + 1; n++) {
            fn = Math.min(fn2 + cost[n - 2], fn1 + cost[n - 1]);
            fn2 = fn1;
            fn1 = fn;
        }

        return fn;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/234211.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue 静态渲染 v-pre

v-pre 指令&#xff1a;用于阻止 Vue 解析这个标签&#xff0c;直接渲染到页面中。 语法格式&#xff1a; <div v-pre> {{ 数据 }} </div> 基础使用&#xff1a; <template><h3>静态渲染 v-pre</h3><p v-pre>静态渲染&#xff1a;{{ n…

JavaEE 08 线程池简介

前言 前面我们谈完了定时器,单例模式,阻塞队列等的操作并且做了模拟实现,今天我们再来说一说线程池的操作以及一些锁策略. 注:本章几乎均为理论篇,实践较少. 下面就让我们开始吧. 线程池 我们知道因为进程的频繁创建和销毁,带来的开销过大,我们无法接受,所以我们引入了更轻量级…

Oracle(2-13) RMAN Complete Recove

文章目录 一、基础知识1、Restoration Using RMAN利用RMAN进行恢复2、Relocate a Tablespace 重新定位表空间 二、基础操作1、恢复前的准备2、恢复数据库3、恢复单个数据文件4、在数据库打开的情况下恢复 RMAN Complete Recove RMAN完全恢复 目标&#xff1a; 了解RMAN用于恢复…

低代码是你得菜吗?传统编程如何应对低代码的挑战?有哪些优秀的低代码平台?

低代码开发是一种越来越受到关注的软件开发方式&#xff0c;它旨在通过简化和加速应用程序开发过程来降低编程门槛。随着技术的进步和对快速交付的需求增加&#xff0c;低代码平台提供了一个快速构建应用程序的环境&#xff0c;无需深入的编程知识&#xff0c;使非专业开发人员…

分布式环境下的session 共享-基于spring-session组件和Redis实现

1、问题概述 不是所有的项目都是单机模式的&#xff0c;当一个项目服务的局域比较广&#xff0c;用户体量比较大&#xff0c;数据量较大的时候&#xff0c;我们都会将项目部署到多台服务器上&#xff0c;这些个服务器都是分布在不同的区域&#xff0c;这样实现了项目的负载和并…

倪海厦:教你正确煮中药,发挥最大药效

同样的一个汤剂&#xff0c;我开给你&#xff0c;你如果煮的方法不对&#xff0c;吃下去效果就没那么好。 所以&#xff0c;汤&#xff0c;取它的迅捷&#xff0c;速度很快&#xff0c;煮汤的时候还有技巧&#xff0c;你喝汤料的时候&#xff0c;你到底是喝它的气&#xff0c;…

Windows安装kafka

压缩包下载地址&#xff1a;https://www.apache.org/dyn/closer.cgi?path/kafka/3.6.1/kafka_2.13-3.6.1.tgz 启动kafka步骤 zookeeper-server-start.bat rem 闭命令提示符窗口的命令回显&#xff0c;这样在运行脚本时不会显示脚本的具体命令内容 echo offrem 命令行启动未…

原来JMeter 结果处理常见问题这么简单,可惜没早点看到!

1. 前言 工作中用 jmeter 请求一个接口对谈得上会 jmeter 的人似乎都是可以做出来的&#xff0c;但是实际难点是参数化&#xff0c;结果的断言&#xff0c;结果的汇总等。本文将针对结果过滤有效性的情况展开分析。 示例场景&#xff1a;一个接口需要对入参1000多个数据做测试…

JavaScript系列-数据类型

ES6变量类型 JavaScript编程语言中&#xff0c;变量类型分为基本变量类型和引用类型&#xff0c;两种变量类型的区别在于 基本类型变量值存放于栈中&#xff0c;引用类型变量值存放于堆中基本类型赋值给其他变量&#xff0c;是将其值复制过去引用类型赋值给其他变量&#xff…

为什么SpringBoot的jar可以直接运行

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…

AI 绘画 | Stable Diffusion 艺术二维码制作

前言 这篇文章教会你如果用Stable Diffusion WEB UI制作艺术二维码,什么是艺术二维码呢?就是普通二维码和艺术图片融合后的二维码图片,如下图所示。主要原理还是使用controlNet的control_v1p_sd15_qrcode_monster模型和光影模型control_v1p_sd15_brightness。 教程 准备…

第 9 部分 — 内存增强 Transformer 网络:数学见解

一、说明 在顺序数据处理领域&#xff0c;传统的 Transformer 架构擅长处理短期依赖性&#xff0c;但在需要大量内存和长序列上下文保留的任务中表现不佳。在这篇综合博客中&#xff0c;我打算探索一种新颖的混合方法&#xff0c;将 Transformer 与显式长期记忆模块集成在一起。…

最新Redis7持久化(权威出版)

首先我们要知道什么是持久化&#xff1a;持久化是指将数据保存到磁盘上&#xff0c;以确保在Redis服务器重启时数据不会丢失。 Redis支持两种主要的持久化方式&#xff1a;RDB持久化和AOF持久化 下面让我依次给你介绍一下&#xff1a; RDB持久化 作用 这是将Redis数据保存…

049:VUE 引入jquery的方法和配置

第049个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

Module build failed : Error : Vue packages version mismatch:

Vue packages version mismatch: - vue2.7.15 (E:\Workspace_ce\erp\erp-web\node_modules\vue\dist\vue.runtime.common.js) - vue-template-compiler2.6.11 (E:\Workspace_ce\erp\erp-web\node_modules\vue-template-compiler\package.json) 【问题解决了&#xff0c;我很不…

百科词条可以删除吗?如何删除自己的百度百科?

近日&#xff0c;小马识途营销顾问接到不少客户删除自己百科词条的咨询&#xff0c;有不少人自己并没有去建立百科词条&#xff0c;但是网上已经有了&#xff0c;有的信息不正确&#xff0c;甚至有的信息是负能量的&#xff0c;对当事人自己造成一定的困扰&#xff0c;所以寻求…

JAVA8新特性之函数式编程详解

JAVA8新特性之函数式编程详解 前言一、初步了解函数式接口二、 Lambda表达式2.1 概述2.2 lambda省略规则2.3 lambda省略常见实例2.4 lambda表达式与函数式接口 三、 Stream流3.1 stream流的定义3.2 Stream流的特点3.3 Stream流的三个步骤3.4 Stream 和 Collection 集合的区别&a…

Linux权限详解

Linux权限 文章目录 Linux权限一、root账号与普通账号二、Linux权限管理三、权限权值表示方法四、文件访问权限的设置方法五、粘滞位六、权限总结 前言&#xff1a; 我们在学习Linux的时候&#xff0c;我们知道在Linux下一切皆文件&#xff0c;而不同的文件对于不同的用户有不同…

119场双周赛复盘

这周没有打比赛&#xff0c;玩老头环乐&#xff08;玩物丧志&#xff09;&#xff0c; 所以是补题了 第一题 100130找到俩个数组中的公共元素 class Solution {public int[] findIntersectionValues(int[] nums1, int[] nums2) {HashMap<Integer,Integer>map1new Has…

深度优先遍历(DFS)

时间复杂度与深搜一致&#xff1b;
最新文章