LC-70-爬楼梯
原题链接:爬楼梯
个人解法
思路:
动态规划
状态表示:f[i]表示走到第n阶台阶有几种方法
状态转移:f[i] = f[i -1] + f[i - 2]
这实际上就是斐波那契数列,通过转移可以看到,我们只用了三个变量,故可以不用状态数组,而只用三个变量进行转移。
时间复杂度:O(n)O(n)O(n)
代码:
class Solution {
public:int climbStairs(int n) {int a = 1, b = 1, c = 1;for(int i = 2;i <= n;i ++) {c = a + b;a = b, b = c;}return c;}
};
更好的解法
- 斐波那契数列矩阵表示

由递推可以得到:

故我们可以利用矩阵乘法快速幂求出MnM^nMn,从而求除FnF_nFn
- 利用解析解
斐波那契数列解析解:
由矩阵表示可以看到MMM矩阵为可逆矩阵且MMM可相似对角化,从而表示为M=SΛS−1,其中Λ为由特征值,S为特征向量组成的矩阵M = S\Lambda S^{-1},其中\Lambda为由特征值,S为特征向量组成的矩阵M=SΛS−1,其中Λ为由特征值,S为特征向量组成的矩阵
那么Mn=SΛnS−1,从而求出Fn的解析解那么M^n = S\Lambda^{n}S^{-1},从而求出F_n的解析解那么Mn=SΛnS−1,从而求出Fn的解析解
相关文章:
LC-70-爬楼梯
原题链接:爬楼梯 个人解法 思路: 动态规划 状态表示:f[i]表示走到第n阶台阶有几种方法 状态转移:f[i] f[i -1] f[i - 2] 这实际上就是斐波那契数列,通过转移可以看到,我们只用了三个变量,故…...
Scratch少儿编程案例-可爱的简约贪吃蛇
专栏分享 点击跳转=>Unity3D特效百例点击跳转=>案例项目实战源码点击跳转=>游戏脚本-辅助自动化点击跳转=>Android控件全解手册点击跳转=>Scratch编程案例👉关于作者...
编译 Android 时如何指定输出目录?
文章目录0. 导读1. 指定 Android 编译输出目录2. 指定 Android dist 编译输出目录3. 指定 Android 模块编译输出目录4. Android 源码中编译相关的文档0. 导读 偶尔会有朋友问编译 Android 时如何指定输出目录? 这里有两种情况: 一是如何将 Android 默认的输出目…...
CF1574C Slay the Dragon 题解
CF1574C Slay the Dragon 题解题目链接字面描述题面翻译题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示代码实现题目 链接 https://www.luogu.com.cn/problem/CF1574C 字面描述 题面翻译 给定长度为 nnn 的序列 aaa,mmm 次询问,每次询…...
创建Django项目
创建Django项目 步骤 创建Django项目 django-admin startproject name 创建子应用 python manager.py startapp name创建工程 在使用Flask框架时,项目工程目录的组织与创建是需要我们自己手动创建完成的。 在django中,项目工程目录可以借助django提供…...
CUDA中的统一内存
文章目录1. Unified Memory Introduction1.1. System Requirements1.2. Simplifying GPU Programming1.3. Data Migration and Coherency1.4. GPU Memory Oversubscription1.5. Multi-GPU1.6. System Allocator1.7. Hardware Coherency1.8. Access Counters2. Programming Mode…...
利用机器学习(mediapipe)进行人脸468点的3D坐标检测--视频实时检测
上期文章,我们分享了人脸468点的3D坐标检测的图片检测代码实现过程,我们我们介绍一下如何在实时视频中,进行人脸468点的坐标检测。 import cv2 import mediapipe as mp mp_drawing = mp.solutions.drawing_utils mp_face_mesh = mp.solutions.face_mesh face_mesh = mp_fac…...
事务基础知识与执行计划
事务基础知识 数据库事务的概念 数据库事务是什么? 事务是一组原子性的SQL操作。事务由事务开始与事务结束之间执行的全部数据库操作组成。A(原子性)、(C一致性)、I(隔离性)、D(持久…...
数据库实践LAB大纲 06 INDEX
索引 索引是一个列表 —— 若干列集合和这些值的记录在数据表存储位置的物理地址 作用 加快检索速度唯一性索引 —— 保障数据唯一性加速表的连接分组和排序进行检索的时候 —— 减少时间消耗 一般建立原则 经常查询的数据主键外键连接字段排序字段少涉及、重复值多的字段…...
网络安全实验室6.解密关
6.解密关 1.以管理员身份登录系统 url:http://lab1.xseclab.com/password1_dc178aa12e73cfc184676a4100e07dac/index.php 进入网站点击忘记密码的链接,进入到重置密码的模块 输入aaa,点击抓包,发送到重放模块go 查看返回的链接…...
了解并发编程
并发与并行的概念: 并发:一段时间内(假设只有一个CPU)执行多个线程,多个线程时按顺序执行 并行:同个时间点上,多个线程同时执行(多个CPU) 什么是并发编程? 在现代互联网的应用中,会出现多个请求同时对共享资源的访问情况,例如在买票,秒杀与抢购的场景中 此时就会出现线程安…...
(C语言)程序环境和预处理
问:1. 什么是C语言的源代码?2. 由于计算机只认识什么?因此它只能接收与执行什么?也就是什么?3. 在ANSI C的任何一种实现中,存在哪两个不同的环境?在这两种环境里面分别干什么事情?4.…...
RiProV2主题美化增加支付页底部提示语ritheme主题美化
美化背景 默认的RiProV2主题在支付提示页,是没有这一行提示的 希望增加根据用户类别,未登录用户购买时提示:当前为游客模式购买。或者其他提示,提示用户未登录购买不保存购买记录等。 索引关键字:ritheme主题美化之增加支付页底部提示语,RiProV2主题美化增加支付页底部提…...
2022年文章分类整理
文章目录JetPack系列Kotlin相关View相关多线程相关存储相关Gradle相关动画相关其他2022年公众号(名字:代码说)发表的文章,分类整理一下,方便阅读!2023,继续加油,共勉!JetPack系列 Android Jetp…...
蓝牙设备中的Device UUID 与 Service UUID
Device UUID也可以被称作为DeviceID。 Android 设备上扫描获取到的 deviceId 为外围设备的 MAC 地址,相对固定。 iOS 设备上扫描获取到的 deviceId 是系统根据外围设备 MAC 地址及发现设备的时间生成的 UUID,是设备上的Core Bluetooth为该设备分配的标识…...
【学习记录】PCA主成分分析 SVD奇异值分解
在看MSC-VO代码的过程中,大量出现了奇异值分解的内容,本身对这部分了解不多,这里补一下课,参考b站up主小旭学长的视频,链接为:PCA主成分分析和SVD主成分分析 PCA主成分分析 PCA根本目的在于让数据在损失尽…...
用 Python 调用 GPT-3 API
用 Python 调用 GPT-3 API GPT-3 是去年由 Open AI 推出的语言机器学习模型。它因其能够写作、写歌、写诗,甚至写代码而获得了广泛的媒体关注!该工具免费使用,只需要注册一个电子邮件即可。 GPT-3 是一种叫 transformer 的机器学习模型。具体…...
类和对象实操之【日期类】
✨个人主页: Yohifo 🎉所属专栏: C修行之路 🎊每篇一句: 图片来源 The pessimist complains about the wind; the optimist expects it to change; the realist adjusts the sails. 悲观主义者抱怨风;乐观主义者期望它…...
微搭中如何实现弹性布局
我们在实际开发中经常可能会有一些社交的场景,比如开发一个类似朋友圈九宫格图片展示的功能。因为图片的数量不确定,所以需要实现图片的从左到右顺序排列。 在微搭中可以以可视化的方式设置样式。但是对于我们这类特殊需求,只用可视化设置显…...
九龙证券|外资强势出手!这只科创板百元股,被疯狂加仓
本周,北上资金净买入29.32亿元,连续第13周加仓A股。分商场看,北上资金加仓重点倾向于沪市的白马蓝筹股,沪股通取得50.34亿元,深股通则被净卖出21.02亿元。 食品饮料本周取得逾23亿元的增持,居职业首位&…...
从国赛H题到实战:构建远程幅频特性测试系统的硬件设计精要
1. 从竞赛到实战的硬件设计转型 参加电子设计竞赛的朋友们都知道,国赛H题这类题目往往能给我们带来宝贵的实战经验。2017年的这道远程幅频特性测试装置题目,看似是一个具体的竞赛任务,实则蕴含了许多通用硬件设计原理。我在实际项目中多次运用…...
hover-effect 性能优化:确保你的 WebGL 扭曲效果流畅运行
hover-effect 性能优化:确保你的 WebGL 扭曲效果流畅运行 【免费下载链接】hover-effect Javascript library to draw and animate images on hover 项目地址: https://gitcode.com/gh_mirrors/ho/hover-effect hover-effect 是一款基于 WebGL 的 JavaScript…...
FreeRTOS和RT-Thread的内存管理实战:如何正确使用pvPortMalloc与rt_malloc替代C库malloc
FreeRTOS与RT-Thread内存管理实战:从标准库陷阱到RTOS最佳实践 在嵌入式实时操作系统开发中,动态内存分配就像高空走钢丝——一步失误可能导致系统崩溃。传统C库的malloc/free在RTOS环境中如同穿着拖鞋走钢丝,而pvPortMalloc和rt_malloc则是专…...
工程师如何从错误中学习:测试测量实战与思维跃迁
1. 项目概述:为什么“错误”是工程师的必修课在测试测量这个行当里摸爬滚打了十几年,我经手过的示波器、信号源、数据采集卡不计其数,也带过不少刚入行的新人。我发现一个挺有意思的现象:学校里成绩拔尖、理论扎实的学生ÿ…...
构建飞书双向集成中继器:Node.js实现企业内外系统自动化连接
1. 项目概述:一个连接飞书与外部服务的“中继器” 最近在做一个挺有意思的小项目,叫 gainly-playreading188/clawrelay-feishu-server 。光看这个名字,可能有点摸不着头脑,我来拆解一下。 clawrelay 这个词组,可以…...
5分钟掌握中兴光猫配置解密:解决网络维护难题的终极方案
5分钟掌握中兴光猫配置解密:解决网络维护难题的终极方案 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder 你是否曾经面对加密的中兴光猫配置文件束手无策&#…...
动态未知环境下无人机轨迹规划技术SANDO解析
1. 动态未知环境中的轨迹规划挑战在机器人自主导航领域,动态未知环境下的轨迹规划一直是个棘手问题。想象一下无人机在密集城市环境中穿行,既要避开突然出现的行人车辆,又要应对GPS信号丢失和传感器视野受限的情况。传统规划方法通常需要精确…...
如何开始嵌入式Linux的学习呢?
如何开始嵌入式Linux的学习呢? (又名:Imx-forge上手Roadmap) 我昨天一下班就回去看了一下仓库,的确太乱,而且mkdocs工具日益陷入停滞维护,所以我们转网站啦! 我本来打算直接画一个…...
从混乱到秩序:如何用TrguiNG汉化版重塑你的Transmission下载管理体验
从混乱到秩序:如何用TrguiNG汉化版重塑你的Transmission下载管理体验 【免费下载链接】TrguiNG Transmission WebUI 基于 openscopeproject/TrguiNG 汉化和改进 项目地址: https://gitcode.com/gh_mirrors/tr/TrguiNG 你是否还在为Transmission简陋的原生Web…...
CodeMaker完整指南:5分钟掌握IntelliJ IDEA智能代码生成插件
CodeMaker完整指南:5分钟掌握IntelliJ IDEA智能代码生成插件 【免费下载链接】CodeMaker A idea-plugin for Java/Scala, support custom code template. 项目地址: https://gitcode.com/gh_mirrors/co/CodeMaker 还在为Java和Scala项目中的重复编码工作而烦…...
