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是已经…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
