LeetCode算法题-Min Cost Climbing Stairs(Java实现)

Harness Engineering:让Coding Agent真正落地生产 本文将带你系统性地了解如何让Coding Agent真正落地生产,核心是依托(全球领先的持续交付、云成本管理、 feature flagging、安全治理一体化平台),结合企业级AIDD(AI-Driven Development)的工程化实践,构建一套可信赖、可观测、可扩展、可治理的Coding Agent落地体系。核心概念与理论基础:什么是Coding Agent?它和普通的AI代码补全工具(比如GitHub Copilot)有什么区别?什么是Harness Engineering? 阅读详情

这是悦乐书的第307次更新,第327篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第176题(顺位题号是746)。在楼梯上,第i步有一些非负成本成本[i]分配(0索引)。一旦支付了费用,您可以爬一到两步。您需要找到到达楼层顶部的最低成本,您可以从索引为0的步骤开始,也可以从索引为1的步骤开始。例如:

输入:cost= [10,15,20]

输出:15

说明:最便宜的是从成本[1]开始,支付该成本并返回顶部。


输入:cost= [1,100,1,1,1,100,1,1,100,1]

输出:6

说明:最便宜的是从成本[0]开始,并且仅在1上跳,跳过成本[3]。


注意:

  • 成本数组的长度在[2,1000]范围内。

  • 每个成本[i]将是[0,999]范围内的整数。

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

02 第一种解法

题目的意思是在成本数组中找出成本总和最小的组合,遍历完数组,遍历时可以跨一个单位或两个单位,和之前的爬楼梯的题目有点类似。我们可以推敲一下,如果要爬到第i级楼梯,有两种选择,一是从第i-1级爬上来,二是从第i-2级阶梯爬上来,然后取其中两者的成本值,哪个花费小,就选哪个。对此我们新建一个数组dp,来存储前面每次选择后要花费的成本之和。

因此,我们可以得出一个关系:dp[i] = Math.min(之前爬两次的花费+当前此次是爬两步的花费, 之前爬一次的花费+当前此次是爬一步的花费);依次计算取其中的较小值存入dp中即可,最后返回dp的最后一位元素。

public int minCostClimbingStairs(int[] cost) {
    int[] dp = new int[cost.length+1];
    for (int i=2; i<cost.length+1; i++) {
        dp[i] = Math.min(dp[i-2]+cost[i-2], dp[i-1]+cost[i-1]);
    }
    return dp[dp.length-1];
}

03 第二种解法

我们还可以对上面的解法进行优化,不使用数组单独存每一次的计算结果,因为新的计算只是依赖前两次的结果,所以我们使用了两个临时变量来存储前两次的计算值,思路和上面第一种解法还是一样的。

public int minCostClimbingStairs(int[] cost) {
    int prev = 0, prev2 = 0, current = 0;
    for(int i = 2; i<cost.length+1; i++){
        current = Math.min(cost[i-2]+prev2, cost[i-1]+prev);
        prev2 = prev;
        prev = current;
    }
    return current;
}

04 小结

算法专题目前已日更超过五个月,算法题文章176+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

独家开源|RK3588 平台 YOLOv5 Android 源码级解析:NPU 量化、多线程与目标跟踪实战 本文将带你完成一个完整的AI视觉项目:在搭载RK3588芯片的Android开发板上运行实时目标检测与跟踪应用。实战目标:成功运行官方YOLOV5摄像头实时检测案例技术深度:深入理解RKNN开发框架和源码实现核心技能:掌握NPU推理、多线程并发、目标跟踪等关键技术。 阅读详情

相关推荐

基于Matlab-Simulink的大林算法控制系统设计与振铃消除实验

本文详细介绍了基于Matlab-Simulink的大林算法控制系统设计与振铃消除实验。通过分析纯滞后系统的控制难题,探讨大林算法在工业控制中的应用优势,并提供Matlab-Simulink环境搭建、控制器D(z)设计、振铃消除及仿真实验的完整流程。文章还对比了大林算法与PID控制的性能差异,为工程实践提供参考。

dropout6artist的博客 798

java 两个很大的非负整数相加

import java.util.Scanner; public class Main { public static void main(String args[]) throws Exception { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { String a = scanne...

sinat_27663443的博客 1330

FDTD仿真进阶:液晶偏振调控与双折射效应全解析

本文深入解析了在Lumerical FDTD仿真中如何对液晶材料进行偏振调控与双折射效应建模。通过单轴液晶和螺旋扭曲液晶(TN-LCD)两大实战案例,详细阐述了从各向异性材料参数设置、LC网格属性配置到偏振椭圆分析的全流程,帮助工程师精准模拟液晶的光开关行为,优化如显示器等器件的光学性能。

chair的专栏 747

使用最小花费爬楼梯(Min Cost Climbing Stairs)java

使用最小花费爬楼梯(Min Cost Climbing Stairs) 题干 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。 您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。 示例 1: ...

下雨了_简的博客 962

功率开关管驱动串扰(Crosstalk):深度解析与优化方案

介绍了功率开关器件驱动串扰产生机理,并整理了常见的工程应用优化措施

qq_38326420的博客 562

YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息

本文记录的是基于MobileNet V4的YOLOv11目标检测轻量化改进方法研究。其中MobileViT块旨在以较少的参数对输入张量中的进行建模,结合卷积与 Transformer 的优势,并实现有效的信息编码与融合本文配置了原论文中和三种模型,以满足不同的需求。

Limiiiing的博客 1075

java cost_LeetCode算法题-Min Cost Climbing Stairs(Java实现)

这是悦乐书的第307次更新,第327篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第176题(顺位题号是746)。在楼梯上,第i步有一些非负成本成本[i]分配(0索引)。一旦支付了费用,您可以爬一到两步。您需要找到到达楼层顶部的最低成本,您可以从索引为0的步骤开始,也可以从索引为1的步骤开始。例如:输入:cost= [10,15,20]输出:15说明:最便宜的是从成本[1...

weixin_31849853的博客 206

架构师之HBase vs MongoDB 技术选型与场景决策实战案例

面对海量数据和高并发查询,该选 HBase 还是 MongoDB?本文为你提供完整的决策框架!从数据模型对比、架构解析、六大真实场景(电信 CDR、金融行情、广告点击流、电商商品、社交档案、内容管理)到性能、一致性、运维全面对比,助你在 PB 级时序数据和灵活查询之间做出精准选择!

肖哥弹架构博客 1102

LeetCode 746. Min Cost Climbing Stairs

LeetCode 746. Min Cost Climbing Stairs 题目描述: On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed). Once you pay the cost, you can either climb one or two steps. You...

杨小熊学习笔记 5953

【C++STL基础入门】stack栈的基础使用

C++ STL(Standard Template Library)是C++标准库中的一个强大的工具集,提供了各种常用的数据结构和算法。其中之一就是Stack(栈),是一种后进先出(LIFO)的数据结构。使用栈可以很方便地管理数据的顺序,它具有简单、高效和易于使用的特点。本文将介绍Stack栈的基础使用方法,帮助初学者快速掌握它的概念和用法。本文简要介绍了C++ STL中Stack栈的基础使用方法。

m0_62599305的博客 3985

YOLOv8【第十章:多任务扩展深度篇·第16节】车道线检测——基于 YOLOv8-Seg 的车道线分割与拟合!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1万+

LeetCode Min Cost Climbing Stairs

On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed). Once you pay the cost, you can either climb one or two steps. You need to find minimum cost to reach the top of ...

渣渣 191

基于GELAN模块的YOLOv8改进-C2f结构替换与轻量化与高效涨点优化研究

本文详细探讨了在YOLOv8架构中利用YOLOv9的GELAN模块替换C2f结构的改进方法。轻量化版本在资源受限的场景中具有显著的推理效率提升,适用于边缘设备和移动端应用。高效涨点版本则在检测精度上实现了大幅突破,特别适合高精度要求的任务。实验结果显示,GELAN模块相比原C2f模块,在参数量与计算量间取得了更好的平衡,同时提升了检测性能。此外,本文还展示了结构图、训练代码和部署优化方案,为研究者和开发者提供了实践参考。

博客 1439

LeetCode 746. Min Cost Climbing Stairs--动态规划--Java,C++,Python解法

LeetCode 746. Min Cost Climbing Stairs LeetCode题解专栏:LeetCode题解 我做的所有的LeetCode的题目都放在这个专栏里,大部分题目Java和Python的解法都有。 欢迎大家关注我的专栏。 题目地址:Min Cost Climbing Stairs - LeetCode On a staircase, the i-th step ha...

个人博客 644

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

【Leetcode】746. Min Cost Climbing Stairs

题目地址: https://leetcode.com/problems/min-cost-climbing-stairs/ 给定一个数组,每个数字代表从当前位置向后跳的费用消耗,允许从下标为000或者111的地方出发,每次允许跳111或222步,问要跳到数组末尾(其实是跳出数组一格),至少需要多少费用。是一道很简单的动态规划,代码如下: public class Solution { pu...

数学、算法爱好者的博客 167

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

746. Min Cost Climbing Stairs

746. Min Cost Climbing Stairs 题目描述:https://leetcode.com/problems/min-cost-climbing-stairs/ 1.先验知识,跳台阶,每次可以跳一阶或者两阶,对于N节台阶有多少种方式。 dp[i]记录i节台阶的方式 dp[0] = 0 dp[1] = 1 dp[2] = 2,一次跳一个台阶,跳两次,或者一次跳两个台阶,跳一次。 ...

weixin_43236656的博客 98

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

LeetCode—746. 使用最小花费爬楼梯(Min Cost Climbing Stairs)——分析及代码(Java)

LeetCode—746. 使用最小花费爬楼梯[Min Cost Climbing Stairs]——分析及代码[Java]一、题目二、分析及代码1. 动态规划(1)思路(2)代码(3)结果三、其他 一、题目 数组的每个索引作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost [i] (索引从0开始)。 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。 您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。 示

江南土豆的博客 357

746. Min Cost Climbing Stairs[Leetcode从零开刷]

题目来源 leetcode 题目: On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed). Once you pay the cost, you can either climb one or two steps. You need to find minimum co

legalhighhigh的博客 189

[leetcode]746.Min Cost Climbing Stairs|Dynamic Programming

题目 题目分析: 还是求最值得问题,用动态规划,转移方程为:dp[i] = Math.min(dp[i - 1], dp[i - 2]) + cost[i - 2]。返回结果时需要注意,返回dp[n + 1],dp[n]两者之间较小值。 代码 class Solution { public int minCostClimbingStairs(int[] cost) { i...

RanranLyu的博客 220

【LeetCode】746. Min Cost Climbing Stairs 使用最小花费爬楼梯(Easy)(JAVA)每日一题

【LeetCode】746. Min Cost Climbing Stairs 使用最小花费爬楼梯(Easy)(JAVA) 题目地址: https://leetcode.com/problems/remove-duplicate-letters/ 题目描述: On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed). Once you pay the cost, you can either c

qq_16927853的博客 215

LeetCode-Min Cost Climbing Stairs

LeetCode Java Min Cost Climbing Stairs

坟头草一米七五 229

leetcode746-Min Cost Climbing Stairs

我们可以定义dp[i]为到达第i层楼梯所支付的最小费用,如果要往上爬则要叠加当前楼层的费用。接下来看如何推倒dp,因为可以通过2个台阶或者1个台阶的方式到达,所以要么是dp[i-2]+cost[i-2],要么是dp[i-1]+cost[i-1],且俩个里面取最小值。给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。解释:你将从下标为 1 的台阶开始。

我的程序人生 308

[LeetCode] 746. Min Cost Climbing Stairs

On a staircase, thei-th step has some non-negative costcost[i]assigned (0 indexed). Once you pay the cost, you can either climb one or two steps. You need to find minimum cost to reach the top of ...

weixin_30376453的博客 119

LeetCode 746. Min Cost Climbing Stairs (使用最小花费爬楼梯)

题目标签:Dynamic Programming   题目给了我们一组 cost,让我们用最小的cost 走完楼梯,可以从index 0 或者 index 1 出发。   因为每次可以选择走一步,还是走两步,这里用 dynamic, 从index 2 (第三格楼梯开始) 计算每一个楼梯,到达需要用的最小cost。   在每一个楼梯,只需要计算 从前面2格楼梯过来的cost, 和 从...

weixin_30823001的博客 146
上一篇: LeetCode算法题-Find Smallest Letter Greater Than Target(Java实现)
下一篇: LeetCode算法题-Largest Number At Least Twice of Others(Java实现)
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值