leetcode每日一练-第70题-爬楼梯

一、思路
动态规划
二、解题方法
使用一个动态规划数组 dp 来记录到达每个台阶的不同方法数。初始情况下,当台阶数为 1 时,方法数为 1,当台阶数为 2 时,方法数为 2。然后,我们从第 3 阶开始逐步计算每一阶的方法数,方法数等于前一阶和前两阶方法数之和。最终,我们返回 dp[n],即到达 n 阶台阶的不同方法数。
三、code
class Solution {
public:int climbStairs(int n) {if(n<=2){return n;}vector<int> dp(n+1,0);//使用一个动态规划数组 dp 来记录到达每个台阶的不同方法数//是一个用来存储动态规划状态的向量(数组),其中 n + 1 是数组的大小,初始化值都为 0。//在动态规划中,状态通常用一个数组(或向量)来表示,每个元素对应不同状态的解。在这个例子中,dp 数组的长度是 n + 1,表示有 n + 1 个不同的状态,索引从 0 到 n。dp[1]=1;dp[2]=2;//在动态规划的过程中,你会填充 dp 数组,其中 dp[i] 表示到达第 i 阶楼梯的不同方法数。最终,当你求解完整个数组后,你需要返回 dp[n],即到达楼顶的不同方法数。for(int i=3;i<=n;++i){dp[i]=dp[i-1]+dp[i-2];//从第 3 阶开始逐步计算每一阶的方法数,方法数等于前一阶和前两阶方法数之和}return dp[n];//dp[n] 表示到达楼顶的不同方法数,其中 n 是楼梯的总阶数}
};
=========================================================================学到的知识:
①
动态规划(Dynamic Programming,简称 DP)是一种解决问题的算法思想,通常用于求解具有重叠子问题和最优子结构性质的问题。它通过将问题分解为子问题并存储子问题的解,以避免重复计算,从而提高算法的效率。
动态规划常用于求解最优化问题,比如最短路径、最长公共子序列、背包问题等。它的核心思想是将原问题拆分为更小的子问题,然后通过解决子问题来解决原问题。在解决子问题时,动态规划会使用一种记忆化的方法,将子问题的解保存在数据结构中,以便后续直接获取,避免重复计算。
动态规划通常分为自顶向下和自底向上两种方式:
-
自顶向下:从大问题开始,逐步分解为子问题,然后通过递归或记忆化搜索来解决子问题。
-
自底向上:从小问题开始,逐步构建出更大的问题的解,通常采用迭代的方式,从子问题的解推导出原问题的解。
动态规划在算法设计和优化中具有广泛应用,能够有效地提高问题的求解效率,但也需要合理的状态定义、状态转移方程和边界条件来确保正确性。
②
vector<int> dp(n + 1, 0); 是一个用来存储动态规划状态的向量(数组),其中 n + 1 是数组的大小,初始化值都为 0。
在动态规划中,状态通常用一个数组(或向量)来表示,每个元素对应不同状态的解。在这个例子中,dp 数组的长度是 n + 1,表示有 n + 1 个不同的状态,索引从 0 到 n。
相关文章:
leetcode每日一练-第70题-爬楼梯
一、思路 动态规划 二、解题方法 使用一个动态规划数组 dp 来记录到达每个台阶的不同方法数。初始情况下,当台阶数为 1 时,方法数为 1,当台阶数为 2 时,方法数为 2。然后,我们从第 3 阶开始逐步计算每一阶的方法数&…...
设备使用RTMP推流到安防监控EasyCVR视频汇聚平台,为何只有FLV格式无法播放?
TSINGSEE青犀视频安防监控视频汇聚平台EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能分析等功能。 智能视频监控平台EasyCVR可…...
arcgis宗地或者地块四至权利人信息提取教程
ARCGIS怎样将图斑四邻的名称及方位加入其属性表 以前曾发表过一篇《 如何把相邻图斑的属性添加在某个字段中》的个人心得,有些会员提出了进一步的要求,不但要相邻图斑的名称,还要求有方位,下面讲一下自己的做法。 基本思路是:连接相邻图斑质心,根据连线的角度确定相邻图斑…...
乐鑫首创|使用 ESP RainMaker® 私有云定制 Matter 生态
ESP RainMaker 是乐鑫的 AIoT 云平台,支持客户自主部署私有物联网云,从而全面掌握数据所有权和管理权,实现定制功能与服务。ESP RainMaker 云后端采用 AWS 无服务器架构,拥有开源的 iOS 和 Android 移动端 APP、第三方语音助手集成…...
【算法|数组】快慢指针
算法|数组——快慢指针 引入 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你…...
C++字符串:使用 std::string
C字符串:使用 std::string 初始化方法一 std::string 变量名称 { “字符串”}; std::string str { " 这是一个字符串" };std::cout << str; std::cin >> str;初始化方法二 std::string 变量名称 { “字符串”&#x…...
目前Java后端就业前景怎么样?
前言 并不乐观,看看现在的就业形式就知道了,基本上是僧多粥少的情况,你可能会看到很多编程语言排行榜或者流行榜中Java的排名很高,如同下面这种: 看排名确实可以粗略的得知语言当下的流行度、使用率,但是它…...
C语言基础(持续更新)
常用函数 strrchr 描述 C 库函数 char *strrchr(const char *str, int c) 在参数 str 所指向的字符串中搜索最后一次出现字符 c(一个无符号字符)的位置。测试代码 #include "stdio.h" #include "string.h"int main() {printf(&q…...
从源码层面深度剖析Spring循环依赖 | 京东云技术团队
以下举例皆针对单例模式讨论 图解参考 https://www.processon.com/view/link/60e3b0ae0e3e74200e2478ce 1、Spring 如何创建Bean? 对于单例Bean来说,在Spring容器整个生命周期内,有且只有一个对象。 Spring 在创建 Bean 过程中࿰…...
Distance 2023牛客暑期多校训练营6 B
登录—专业IT笔试面试备考平台_牛客网 题目大意:给出两个长度为n的数组a,b,每次操作可以令一个数1,将a的一个子集A变成和b的一个子集B变成完全相同需要的最少操作数为C(A,B),求对于a的所有子集对所有b的子集的C(A,B)的…...
【Pandas】学习笔记之groupby()、agg()、transform()
在数据分析过程中经常需要对数据集进行分组,并且统计均值,最大值等等。那么 groupby() 的学习就十分有必要了 groupby(): 分组 官方文档: DataFrame.groupby(byNone, axis0, levelNone, as_indexTrue, sortTrue, group_keysTrue, observedF…...
使用正则表达式 移除 HTML 标签后得到字符串
需求分析 后台返回的数据是 这样式的 需要讲html 标签替换 high_light_text: "<span stylecolor:red>OPPO</span> <span stylecolor:red>OPPO</span> 白色 01"使用正则表达式 function stripHTMLTags(htmlString) {return htmlString.rep…...
Java中String方法魔性学习
这里写目录标题 先进行专栏介绍String详解常用构造方法代码演示常用成员方法代码示例总结 先进行专栏介绍 本专栏是自己学Java的旅途,纯手敲的代码,自己跟着黑马课程学习的,并加入一些自己的理解,对代码和笔记 进行适当修改。希望…...
Smartbi 权限绕过漏洞复现(QVD-2023-17461)
0x01 产品简介 Smartbi大数据分析产品融合BI定义的所有阶段,对接各种业务数据库、数据仓库和大数据分析平台,进行加工处理、分析挖掘和可视化展现;满足所有用户的各种数据分析应用需求,如大数据分析、可视化分析、探索式分析、复杂…...
springboot自定义错误消息
为了提供自定义错误消息提示,springboot在resources目录下,有一个文件ValidationMessages.properties 用于存储 验证错误的消息提示: 比如: 这样一个ValidationMessage.properties username.notempty用户名不能为空 username.len…...
微信小程序申请步骤
微信公众平台链接:https://mp.weixin.qq.com/ 1、进到微信公众平台,点一下“点击注册”,挑选账号申请种类“小程序”,填好微信小程序用户信息,包含电子邮箱、登陆密码等。 2、微信公众平台会发送一封电子邮件…...
嘉楠勘智k230开发板上手记录(四)--HHB神经网络模型部署工具
按照K230_AI实战_HHB神经网络模型部署工具.md,HHB文档,RISC-V 编译器和模拟器安装来 一、环境 1. 拉取docker 镜像然后创建docker容器并进入容器 docker pull hhb4tools/hhb:2.4.5 docker run -itd --namehhb2_4 -p 22 "hhb4tools/hhb:2.4.5"…...
微信小程序的自定义TabBar及Vant的使用
一、安装Vant 1、在 资源管理器 空白位置,点右键打开 在外部终端窗口打开 2、初始化NPM npm init -y 3、安装命令 npm i vant/weapp1.3.3 -S --production 4、构建NPM包 在 工具 里选择构建NPM包 5、删除style:v2 在app.json里,删除"style"…...
canvas实现代码雨
学习抖音: 渡一前端必修课 效果图: 全部代码: <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge">&…...
基于MFCC特征提取和HMM模型的语音合成算法matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022A 3.部分核心程序 ............................................................................ %hmm是已经…...
避坑指南:交叉编译Paho MQTT C时OpenSSL配置的那些‘坑’
避坑指南:交叉编译Paho MQTT C时OpenSSL配置的那些‘坑’ 在嵌入式开发中,交叉编译是连接开发环境与目标平台的桥梁,而Paho MQTT C库作为轻量级MQTT客户端实现,常被用于资源受限设备。然而,当OpenSSL作为加密依赖加入编…...
从概率图到优化问题:信息矩阵、Hessian矩阵与协方差矩阵的内在统一
1. 概率图模型中的信息矩阵与协方差矩阵 我第一次接触信息矩阵是在做视觉SLAM项目时,当时被一堆矩阵运算绕得头晕。后来才发现,理解它们的关系就像拼乐高——每个零件都有明确的位置和作用。让我们从一个简单的因子图例子开始,看看这些矩阵如…...
UVM验证效率提升:利用仿真器保存恢复机制消除冗余配置周期
1. 验证环境中的冗余周期之痛:一个普遍存在的效率瓶颈在芯片验证领域,尤其是使用UVM(Universal Verification Methodology)构建的复杂验证环境中,我们常常会面临一个看似不起眼、实则消耗巨大的问题:冗余的…...
G-Helper完整指南:3分钟掌握华硕笔记本性能优化神器
G-Helper完整指南:3分钟掌握华硕笔记本性能优化神器 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expe…...
Yolov5 5.0 vs 6.1:C#部署ONNX模型时,我踩过的版本兼容性大坑
YOLOv5 5.0与6.1版本在C#部署ONNX模型时的关键差异与实战避坑指南 当你在C#环境中尝试部署YOLOv5导出的ONNX模型时,是否遇到过"超出索引"这类令人抓狂的报错?这很可能源于你选择的YOLOv5版本与部署框架之间的兼容性问题。本文将深入剖析YOLOv5…...
3步高效转换:AEUX智能插件实现Figma到AE的无缝动画设计
3步高效转换:AEUX智能插件实现Figma到AE的无缝动画设计 【免费下载链接】AEUX Editable After Effects layers from Sketch artboards 项目地址: https://gitcode.com/gh_mirrors/ae/AEUX AEUX插件是一款革命性的设计转换工具,能够将Figma设计稿智…...
CANN/hccl参数面建链阶段故障诊断
参数面建链阶段 【免费下载链接】hccl 集合通信库(Huawei Collective Communication Library,简称HCCL)是基于昇腾AI处理器的高性能集合通信库,为计算集群提供高性能、高可靠的通信方案 项目地址: https://gitcode.com/cann/hcc…...
Linux串口编程进阶:深入termios2结构体,搞定CH340/FTDI各种转接器的非标准波特率
Linux串口编程实战:破解CH340/FTDI非标准波特率适配难题 当你在工业物联网项目中尝试将某个9600bps的设备升级到115200bps时,可能会发现某些USB转串口适配器死活不配合——明明代码正确,波特率却始终无法生效。这不是你的错,而是…...
AI行业的“人才缺口”:哪些AI岗位最紧缺
一、AI行业人才缺口的整体态势在AI技术飞速发展的当下,其对各行业的渗透速度远超预期,人才供需矛盾愈发凸显。据《人工智能产业人才发展报告(2025~2026)》测算,中国AI人才总缺口超过580万人,其中核心技术岗位缺口超过80万人。人力…...
AMD Ryzen嵌入式COM Express模块:工业边缘计算的高性能解决方案
1. 项目概述:当工业计算遇上“锐龙”芯在工业自动化、边缘计算和高端嵌入式领域,COM Express(Computer-On-Module Express)模块一直是构建紧凑、高性能、高可靠性系统的基石。它就像一台浓缩的、标准化的“电脑主板核心”…...
