力扣70. 爬楼梯(动态规划 Java,C++解法)
Problem: 70. 爬楼梯
文章目录
- 题目描述
- 思路
- 解题方法
- 复杂度
- Code
题目描述
思路
由于本题目中第i层台阶只能由于第i- 1层台阶和第i-2层台阶走来,所以可以联想到动态规划,具体如下:
1.定义多阶段决策模型:对于每一上台阶看作一种状态;
2.定义状态转移方程:int[] dp = new int[n + 1]用于记录第i个台阶可以走到的走法;dp[i] = dp[i - 1] + dp[i - 2];
解题方法
1.定义数组int[] dp = new int[n + 1]用于记录第i个台阶可以走到的走法
2.初始化dp[1] = 1; dp[2] = 2;
3.从dp数组下标为3处开始完成动态转移方程;
4.返回dp[n]
复杂度
时间复杂度:
O ( n ) O(n) O(n);其中 n n n为台阶数
空间复杂度:
O ( n ) O(n) O(n)
Code
class Solution {/*** Dynamic programing* @param n The number of stage* @return int*/public int climbStairs(int n) {if (n <= 2) {return n;}//Record how many moves there are on step iint[] dp = new int[n + 1];dp[1] = 1;dp[2] = 2;for (int i = 3; i <= n; ++i) {dp[i] = dp[i - 1] + dp[i - 2];}return dp[n];}
}
class Solution {
public:int climbStairs(int n) {if (n <= 2) {return n;}vector<int> dp(n + 1);dp[1] = 1;dp[2] = 2;for (int i = 3; i <= n; ++i) {dp[i] = dp[i - 1] + dp[i - 2];}return dp[n];}
};
相关文章:
力扣70. 爬楼梯(动态规划 Java,C++解法)
Problem: 70. 爬楼梯 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 由于本题目中第i层台阶只能由于第i- 1层台阶和第i-2层台阶走来,所以可以联想到动态规划,具体如下: 1.定义多阶段决策模型:对于每一上台阶看作一种状…...
Wpf 使用 Prism 实战开发Day13
配置 AutoMapper 关系映射 在上一节 ToDoController 控制器,或 IToDoService 服务接口中,方法的传参都是直接传的实体类。但在实际开发过程中,这样是不允许的。标准且规范的做法是,定义一个数据传输层,即Dto层。 一.在…...
62 C++ 多线程 -- mutex互斥量只能使用一次的问题分析-----以及解决方案递归mutex:recursive_mutex。
一 前提 以及问题 我们注意到,如果mutex.lock()两次,就会有问题 如下的代码有runtime exception mutex mymutex;mymutex.lock();mymutex.lock();//共享数据访问处理代码mymutex.unlock();mymutex.unlock(); 但是有这样的case存在 class Teacher183 …...
Chrome Devtools 调试指南
Chrome DevTools 是一套内置于 Google Chrome 浏览器的开发者工具,可以帮助开发者进行网页和应用的调试、优化和测试。以下是一些基本的调试指南: 打开 Chrome DevTools: 你可以通过以下方式之一打开 DevTools: 右键点击页面上的任…...
【Qt5】QString的成员函数chop
2024年1月19日,周五下午 QString 的 chop 方法用于从字符串的末尾移除指定数量的字符。这个方法会修改原始字符串,并返回 void。 下面是一个简单的示例: #include <QString> #include <QDebug>int main() {QString originalStr…...
Spring中的注解
Spring的配置 spring 2.5前xml spring 2.5后xmlannotation spring 3.0后annotationJavaConfig配置类 注解: 1.注入类 替换:<bean id"" class""></bean> 位置:类 语法:Component(value"注入容器中的…...
JavaScript 中的事件
1、鼠标事件: 鼠标单击事件(click): 方法一 (onclick) <button id"btn" onclick"alert(88888)">点击弹框</button> 方法二(利用addEventListener)…...
hasattr、getattr、setattr
在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询。这些函数提供了一种方便的方式来检查对象是否具有特定属性,获取属性的值,以及设置属性的值。 1. hasattr hasattr()函数是一种重要…...
构建高可用消息队列系统 01
构建高可用消息队列系统 01 引言1. RabbitMQ简介介绍1.1 什么是RabbitMQ1.2 RabbitMQ的核心特性1.3 RabbitMQ与AMQP 2.安装RabbitMQ3.消息队列实践总结 引言 在当今互联网时代,消息队列系统扮演着至关重要的角色,它们被广泛应用于分布式系统、微服务架构…...
十本你不容错过的Docker入门到精通书籍推荐
前言: 最近有许多小伙伴私信让我推荐几本关于Docker学习的书籍,今天花了一下午的时间在网上查阅了一些资料和结合自己平时工作中的一些学习参考资料书籍写下了这篇文章。注意以下书籍都是十分优秀的Docker学习书籍(因此排名不分先后ÿ…...
【AI接口】语音版、文心一言大模型和AI绘图、图片检测API
文章目录 一、语音版大模型AI1、接口2、请求参数3、请求参数示例4、接口返回示例 二、AI图片鉴黄合规检测API1、接口2、请求参数3、请求参数示例4、接口返回示例5、报错说明6、代码开源 三、人工智能AI绘画API1、接口2、请求参数3、请求参数示例4、接口返回示例5、AI绘画成果展…...
VUE 中的 v-for 和 v-if 是否可以共存
VUE 中的 v-for 和 v-if 是否可以共存 前言1、面试经2、正确回答3、总结总结: 前言 要成功,先发疯,头脑简单往前冲! 三金四银,金九银十,多学知识,也不能埋头苦干,要成功,…...
kubernetes 权限控制
RBAC引入了4个顶级资源对象:Role、ClusterRole:角色,用于指定一组权限;RoleBinding、ClusterRoleBinding:角色绑定,用于将角色(权限)赋予给对象 咱们通过Role可以配置命名空间下资源…...
vue中父组件异步传值,渲染问题
vue中父组件异步传值,渲染问题 父组件异步传值,子组件渲染不出来。有如下两种解决方法: 1、用v-if解决,当父组件有数据才渲染 <Child v-if"dataList && dataList.length > 0" :data-list"dataLis…...
09前后端分离+SSM整合的小案例
前端的Node 后端的Tomcat,是前端程序的容器。前端的npm 后端的maven 1. 导入前端项目 node版本:16.16.0 配置阿里镜像 npm config set registry https://registry.npmjs.org/ 更新npm版本 npm install -g npm9.6.6 用vscode打开解压后的项目 , 右上角…...
模仿ProTable创建ProTable组件
不多说废话直接上代码 父组件 // index.jsx/*** description 此ProTable是根据ProComponents里的ProTable模仿封装的简易版本* */ import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useState } from react import { Card, Table } from antd import…...
新品发布 | 多通道总线记录仪TLog1004,是你期待的吗?
新品发布 2024年1月12日,同星智能又发布一款多通道 CAN (FD)总线、LIN 总线接口logger设备,此款产品在TLog1002基础上进行了升级,同时内置 3 路数字输入和 2 路数字输出,便于多种信号测量和系统集成。可以满…...
Double数据类型保留3位小数
Double scrapGrn scrapQty * Double.parseDouble(lot.getCnvrsnFctr()) / 1000 ; // 保留3位小数 DecimalFormat decimalFormat new DecimalFormat("#.###"); String scrapGrnStr decimalFormat.format(scrapGrn); 345.12344 处理后 为 345.123 34…...
08- OpenCV:形态学操作(膨胀与腐蚀 、提取水平与垂直线)
目录 前言 一、膨胀(Dilation)与 腐蚀(Erosion) 二、形态学操作 1、开操作(Opening) 2、闭操作(Closing) 3、形态学梯度(Morphological Gradient) 4、…...
基于JavaWeb+SSM+Vue停车场微信小程序系统的设计和实现
基于JavaWebSSMVue停车场微信小程序系统的设计和实现 滑到文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 滑到文末获取源码 Lun文目录 目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关…...
Midscene.js视觉驱动自动化:从认知到实践的AI跨平台控制指南
Midscene.js视觉驱动自动化:从认知到实践的AI跨平台控制指南 【免费下载链接】midscene Let AI be your browser operator. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 一、认知篇:理解Midscene.js的技术革新 1.1 破解传统自动…...
如何快速改善论文写作的语言能力?
对于许多非英语母语的科研工作者而言,从实验数据到最终发表,横亘在中间的最大障碍往往不是创新性不足,而是语言表达上的“无力感”。每当完成一篇心血之作,面对屏幕上的文字,内心总充满了自我怀疑:这句话的…...
重构macOS开发流程:OpenInTerminal如何提升开发者环境切换效率
重构macOS开发流程:OpenInTerminal如何提升开发者环境切换效率 【免费下载链接】OpenInTerminal ✨ Finder Toolbar app for macOS to open the current directory in Terminal, iTerm, Hyper or Alacritty. 项目地址: https://gitcode.com/gh_mirrors/op/OpenInT…...
RuoYi-Cloud微服务架构下PostgreSQL数据库迁移实战指南
1. 迁移前的准备工作 在开始将RuoYi-Cloud从MySQL迁移到PostgreSQL之前,我们需要做好充分的准备工作。这就像搬家前要打包物品一样,准备工作做得好,后续的迁移过程就会顺利很多。 首先,我们需要了解PostgreSQL和MySQL之间的主要差…...
高效解决HTML转Word难题:浏览器端无后端文档转换全方案
高效解决HTML转Word难题:浏览器端无后端文档转换全方案 【免费下载链接】html-docx-js Converts HTML documents to DOCX in the browser 项目地址: https://gitcode.com/gh_mirrors/ht/html-docx-js 在数字化办公场景中,将网页内容快速转换为可编…...
OpenClaw+GLM-4.7-Flash:自动化客户咨询响应系统
OpenClawGLM-4.7-Flash:自动化客户咨询响应系统 1. 为什么选择这个技术组合 去年夏天,我接手了一个小型电商项目的客服系统改造需求。客户希望在不增加人力成本的情况下,实现7*24小时的初步咨询响应。经过几轮技术选型,最终选择…...
PyTorch Geometric安装避坑指南:从CUDA版本选择到依赖包自动安装的完整流程
PyTorch Geometric工程化安装指南:从版本匹配到环境复现的深度实践 在深度学习领域,图神经网络(GNN)正成为处理非欧几里得数据的利器,而PyTorch Geometric(PyG)作为最受欢迎的GNN框架之一,其安装过程却常让开发者陷入"依赖地…...
无线音频桥接实战指南:让传统音响实现跨设备兼容的完整方案
无线音频桥接实战指南:让传统音响实现跨设备兼容的完整方案 【免费下载链接】AirConnect Use AirPlay to stream to UPnP/Sonos & Chromecast devices 项目地址: https://gitcode.com/gh_mirrors/ai/AirConnect 🎶 从"音响孤岛"到&…...
5步掌握Loop:让Mac窗口管理效率提升10倍的免费开源方案
5步掌握Loop:让Mac窗口管理效率提升10倍的免费开源方案 【免费下载链接】Loop MacOS窗口管理 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 在数字工作环境中,窗口管理已成为影响效率的隐形瓶颈。Mac用户每天平均需要执行200次窗口操作…...
AI 开发实战:技术决策为什么总失忆,决策日志可以怎么做
AI 开发实战:技术决策为什么总失忆,决策日志可以怎么做 一、这个问题为什么值得专门拿出来做? 在 AI 工程落地里,真正拖慢团队的往往不是模型本身,而是流程和协作方式没有跟上。 围绕“技术决策为什么总失忆࿰…...
