代码随想录算法训练营第三十八天|理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
题目:理论基础
文章链接:代码随想录
视频链接:动态规划理论基础
动态规划五部曲:
- 确定dp数组(dp table)以及下标的含义
- 确定递推公式
- dp数组如何初始化
- 确定遍历顺序
- 举例推导dp数组
题目:509. 斐波那契数
文章链接:代码随想录
视频链接:LeetCode:509.斐波那契数
题目链接:力扣题目链接
图释:
class Solution {
public:// 确定dp数组(dp table)以及下标的含义 vector<int> dp, dp[i]表示第n哥斐波那契数 // 确定递推公式 dp[i]=dp[i-1]+dp[i-2]// dp数组如何初始化 dp[0]=1, dp[1]=1// 确定遍历顺序 从前往后// 举例推导dp数组 int fib(int n) {if(n<=0)return 0;if(n==1) return 1;vector<int> dp(n+1);dp[0]=0;dp[1]=1;for(int i=2; i<=n; i++){//从2开始,直到第n个数dp[i]= dp[i-1]+dp[i-2];}return dp[n];}
};
class Solution {
public:int traversal(int n){// 终止条件if(n==1) return 1;if(n==0) return 0;// 递归return traversal(n-1)+traversal(n-2);} int fib(int n) { return traversal(n);}
};再精简
class Solution {
public:int fib(int n) { // 终止条件if(n==1) return 1;if(n==0) return 0;return fib(n-1)+fib(n-2);}
};
题目:70. 爬楼梯
文章链接:代码随想录
视频链接:LeetCode:70.爬楼梯
题目链接:力扣题目链接
图释:
class Solution {
public:// 确定dp数组(dp table)以及下标的含义 vector<int> dp, dp[i]表示达到第n层楼梯需要的方法 // 确定递推公式 dp[i]=dp[i-1]+dp[i-2]// dp数组如何初始化 dp[1]=1, dp[2]=2// 确定遍历顺序 从前往后// 举例推导dp数组 // 题目中要求的每次可以爬1或者2个台阶,也就是说,最终到达n阶台阶有两种方式,// 一个是爬1阶台阶到达(对应的是从n-1阶台阶开始)// 另一个就是爬2阶台阶到达(对应的是从n-2阶台阶开始爬),// 而爬n-1阶和n-2阶台阶的方法有dp[n-1],dp[n-2]个// 所以最终爬n阶台阶的方法种类就是dp[n-1]+dp[n-2]int climbStairs(int n) {if(n==1) return 1;if(n==2) return 2;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];}
};
class Solution {
public:int climbStairs(int n) {if(n==1) return 1;if(n==2) return 2;return climbStairs(n-1)+climbStairs(n-2);}
}; //超时
题目:746. 使用最小花费爬楼梯
文章链接:代码随想录
视频链接:LeetCode:746.使用最小花费爬楼梯
题目链接:力扣题目链接
图释:

class Solution {
public:// 确定dp数组(dp table)以及下标的含义 vector<int> dp, dp[i]表示爬到第n层台阶的最低花费// 确定递推公式 dp[i]= min(dp[i-1]+cost[i-1], dp[i-2]+cost[i+2]) 可以选择从前一个台阶或者前两个台阶爬上来 // dp数组如何初始化 dp[0]=0, dp[1]=0 题目说了,可以选择从0或者1台阶出发,也就是dp[i]到这两个台阶的最低花费为0// 确定遍历顺序 从前往后// 举例推导dp数组 int minCostClimbingStairs(vector<int>& cost) {if(cost.size()==0 || cost.size()==1) return 0;vector<int> dp(cost.size()+1);dp[0]=dp[1]=0;for(int i=2; i<=cost.size(); i++){ // 顶楼表示为dp[n] dp[i]= min(dp[i-1]+cost[i-1], dp[i-2]+cost[i-2]);}return dp[cost.size()];}
};
相关文章:
代码随想录算法训练营第三十八天|理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
题目:理论基础 文章链接:代码随想录 视频链接:动态规划理论基础 动态规划五部曲: 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 题目:509. 斐…...
大数据开发之Hadoop(优化新特征)
第 1 章:HDFS-故障排除 注意:采用三台服务器即可,恢复到Yarn开始的服务器快照。 1.1 集群安全模块 1、安全模式:文件系统只接收读数据请求,而不接收删除、修改等变更请求 2、进入安全模式场景 1)NameNod…...
在使用go语言开发的时候,程序启动后如何获取程序pid
在Go语言中,标准库并没有直接提供获取进程ID(PID)的函数。通常,你可以使用os包和syscall包来调用底层的操作系统函数来获取PID。 以下是一个获取程序PID的示例代码: package mainimport ("fmt""os&qu…...
HFSS笔记/信号完整性分析(二)——软件仿真设置大全
文章目录 1、多核运算设置1.1 如何设置1.2 如何查看自己电脑的core呢?1.3 查看求解的频点 2、求解模式设置Driven Terminal vs Driven modal 3、Design settings4、自适应网格划分5、更改字体设置 仅做笔记整理与分享。 1、多核运算设置 多核运算只对扫频才有效果&…...
mysql主从报错:Last_IO_Error: Error connecting to source解决方法
目录 报错 处理方法 1.从库停止同步 2.主库修改my.cnf 生效配置default-authentication-pluginmysql_native_password 3.重启服务重新创建复制用户 4.重新同步 5.测试主从 报错 Last_IO_Error: Error connecting to source repl_user192.168.213.15:3306. This was atte…...
AOI与AVI:在视觉检测中的不同点和相似点
AOI(关注区域)和AVI(视觉感兴趣区域)是视觉检测中常用的两个概念,主要用于识别和分析图像或视频中的特定区域。虽然这两个概念都涉及到注视行为和注意力分配,但它们在定义和实际应用等方面有一些差异。 AOI…...
Python爬虫 - 网易云音乐下载
爬取网易云音乐实战,仅供学习,不可商用,出现问题,概不负责! 分为爬取网易云歌单和排行榜单两部分。 因为网页中,只能显示出歌单的前20首歌曲,所以仅支持下载前20首歌曲(非VIP音乐&…...
yarn包管理器在添加、更新、删除模块时,在项目中是如何体现的
技术很久不用,就变得生疏起来。对npm深受其害,决定对yarn再整理一遍。 yarn包管理器 介绍安装yarn帮助信息最常用命令 介绍 yarn官网:https://yarn.bootcss.com,学任何技术的最新知识,都可以通过其对应的网站了解。无…...
React实现Intro效果(基础简单)
下载:利用Intro.js实现简单的新手引导 npm install intro.js --save yarn add intro.js 第一步:在我们需要引导的页面引入 import introJs from intro.js; import intro.js/introjs.css; //css是下载成功后就有的 第二步:在组件页面 c…...
HBuilderx发布苹果的包需要注意什么
在HBuilderX中发布苹果的包,需要注意以下几点: 开发者账号注册:在发布应用到App Store之前,需要先注册一个苹果开发者账号。注册过程较为繁琐,需要提供个人信息并支付年费。应用标识和证书:在发布iOS应用之…...
烟火检测/周界入侵/视频智能识别AI智能分析网关V4如何配置ONVIF摄像机接入
AI边缘计算智能分析网关V4性能高、功耗低、检测速度快,易安装、易维护,硬件内置了近40种AI算法模型,支持对接入的视频图像进行人、车、物、行为等实时检测分析,上报识别结果,并能进行语音告警播放。算法可按需组合、按…...
C++ 内联函数
C 内联函数是通常与类一起使用。如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方。 对内联函数进行任何修改,都需要重新编译函数的所有客户端,因为编译器需要重新更换一次所有的代码&a…...
微信小程序带参数分享界面、打开界面加载分享内容
分享功能是微信小程序常用功能之一,带参分享和加载可以让分享对象打开界面时看到和分享内容。 带参分享 用户点击微信小程序右上角自带分享,或者点击自定义分享按钮进行分享时,可在onShareAppMessage函数定义分享行为。 分享界面路径可带参…...
中小企业选择CRM系统有哪些注意事项?如何高效实施CRM
阅读本文,你将了解:一、中小型企业对CRM系统的主要需求;二、CRM系统实施策略和优秀实践。 在快速变化的商业环境中,中小型企业面临着独特的挑战:如何在有限的资源下高效地管理客户关系、提升销售效率,保持…...
轮胎侧偏刚度线性插值方法
一、trucksim取数据 步骤一 步骤二 二、数据导入到matlab中 利用simulink的look up table模块 1是侧偏角;2是垂直载荷;输出是侧向力。 侧向力除以侧偏角就是实时的侧偏刚度。...
前端JS代码中Object类型数据的相关知识
获取Object类型数据的方式有两种: 方括号获取:Object["arg1"]点获取:Object.arg1 前端遍历Object类型数据的方式 遍历JavaScript中的对象有几种方法,包括使用for…in循环、Object.keys()方法、Object.values()方法和…...
vue基于Spring Boot共享单车租赁报修信息系统
共享单车信息系统分为二个部分,即管理员和用户。该系统是根据用户的实际需求开发的,贴近生活。从管理员处获得的指定账号和密码可用于进入系统和使用相关的系统应用程序。管理员拥有最大的权限,其次是用户。管理员一般负责整个系统的运行维护…...
CentOS 6.10 安装图解
特特特别的说明 CentOS发行版已经不再适合应用于生产环境,客观条件不得不用的话,优选7.9版本,8.5版本次之,最次6.10版本(比如说Oracle 11GR2就建议在6版本上部署)! 引导和开始安装 选择倒计时结…...
Web自动化测试中的接口测试
1、背景 1.1 Web程序中的接口 1.1.1 典型的Web设计架构 web是实现了基于网络通信的浏览器客户端与远程服务器进行交互的应用,通常包括两部分:web服务器和web客户端。web客户端的应用有html,JavaScript,ajax,flash等&am…...
轻松识别Midjourney等AI生成图片,开源GenImage
AIGC时代,人人都可以使用Midjourney、Stable Diffusion等AI产品生成高质量图片,其逼真程度肉眼难以区分真假。这种虚假照片有时会对社会产生不良影响,例如,生成公众人物不雅图片用于散播谣言;合成虚假图片用于金融欺诈…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
Mysql故障排插与环境优化
前置知识点 最上层是一些客户端和连接服务,包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念,为通过安全认证接入的客户端提供线程。同样在该层上可…...
