509. 斐波那契数

Leetcode 509. 斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: 给定 n ,请计算 F(n) 。示例 1: 示例 2: 示例 3: 提示:Code: 阅读详情

描述

斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0, F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
给定 N,计算 F(N)。

示例 1:
输入:2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1.

示例 2:
输入:3
输出:2
解释:F(3) = F(2) + F(1) = 1 + 1 = 2.

示例 3:
输入:4
输出:3
解释:F(4) = F(3) + F(2) = 2 + 1 = 3.

提示:
0 ≤ N ≤ 30

思路

这道题没啥难度,用暴力递归的话两行就能解决。但其时间复杂度为指数级的,为O(2^n),因为递归的过程中有着大量的重复计算,比如要求F(10),就需要知道F(9)和F(8);要求F(9),就需要知道F(8)和F(7);这里看到F(8)被计算了两次了,但这是没有必要的,所以可以设置一个缓存,将计算过的值保存进去,要使用前先看看缓存里有没有,有的话就不用再计算了,直接拿来用即可。优化后时间复杂度变为了O(n)。

解答

class Solution {
public:
    int fib(int N) {
        vector<int> cache(N+1, -1);//缓存数组,避免重复计算,即剪枝操作
        return recu(N, cache);
    }
    int recu(int N, vector<int>& cache){//递归函数
        if(N == 0) return 0;
        if(N == 1) return 1;
        if(cache[N] != -1) return cache[N];
        cache[N] = recu(N-1, cache)+ recu(N-2, cache);
        return cache[N];
    }
};
用InVEST做碳中和规划?手把手教你计算城市碳储量与热岛效应 本文详细介绍了如何利用InVEST模型进行城市碳中和规划的科学评估。通过手把手教学,演示了如何使用该模型的碳存储与城市热岛缓解模块,从数据准备、模型运行到结果解读,量化评估不同规划方案下的碳储量变化与热岛效应缓解潜力,为城市规划者提供科学的决策依据。 阅读详情

相关推荐

AMD Ross FPGA Agent 实战:用 AI 驱动 Vivado 开发流程

在 EDA 领域,FPGA 开发长期面临工具链重、反馈周期长、报错晦涩等痛点。AI Agent 通过自然语言交互与工具调用,将 Vivado 的 Tcl 批处理流程封装为可编排、可观测的智能体,显著降低查文档与读报告的时间成本。其核心在于 Harness 与 Agent 的协同:Harness 提供安全执行环境,Agent 负责决策与迭代。典型应用包括工程创建、约束生成、综合实现报告解读及比特流失败排查。本文以 AMD Ross 为例,拆解其架构设计与实操方法,帮助开发者理解如何将 Agent 落地到高门槛

weixin_29189363的博客 1022

【LeetCode刷题】509. 斐波那契数

斐波那契数,通常用F(n)表示,形成的序列称为斐波那契数列。 该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0, F(1)= 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 给定N,计算F(N)。 示例 1: 输入:2 输出:1 解释:F(2) = F(1) + F(0) = 1 + 0 = 1. 示例 2: 输入:3 输出:2 解释:F(3) = F(2) + F(1) = 1...

StudyWinter的博客 519

Matlab_Marr小波尺度变换图

多尺度的连续小波变换分解后时间尺度图 墨西哥Marr小波函数: %delta 小波变换尺度 %N     小波函数的长度 %s     原始信号 %g     原始信号某个尺度下的小波变化系数 function g=Singularity_Detection(delta,N,s); %保持信号长度 n=length(s); % 构造墨西哥小帽小波函数 for index_x=1

桔色小西瓜 6601

【华为机试】509. 斐波那契数

斐波那契数列问题是一个经典的递归和动态规划案例。文章详细介绍了多种解法及其优化思路:1)朴素递归法(时间复杂度O(2^n));2)备忘录递归法(通过哈希表存储结果避免重复计算,优化至O(n));3)动态规划法(自底向上构建解);4)空间优化版本(仅保存前两项)。重点分析了备忘录优化原理,通过存储中间结果显著提升效率。文章还比较了各解法的时间/空间复杂度,并给出了实际应用场景和扩展问题。最后提供了Go语言实现代码,包括递归、备忘录递归和动态规划三种实现方式。

qq_32019341的博客 1117

Flink项目基础配置指南

在大数据处理领域,Apache Flink凭借强大的实时流处理和批处理能力,成为众多开发者的首选工具。在日常工作中,开发Flink Jar任务是常见需求,但每次都需重复配置日志、梳理pom依赖、设置打包插件等,流程繁琐且易出错。为提升开发效率,减少重复劳动,将这些基础配置进行整理归纳十分必要。本文将围绕Flink项目的本地日志配置、pom依赖及插件配置展开详细介绍,为开发者提供一套可直接复用的基础配置方案,助力Flink项目高效开发。在Flink项目中,日志是了解任务运行状态、排查问题的重要依据。本地日志配

qq_42773076的博客 1210

项目管理-(补充)七种基本质量工具

七种基本质量工具,用于PDCA循环的架构内 解决与质量相关的问题,分为老七工具和新七工具。 1)老七种:刘英只点劣质茶(流程图、因果图、直方图、散点图、帕累托图、控制图、核查表)2)新七种:锯树联亲测动优(矩阵图、树形图、关联图、亲和图、过程决策程序图、活动网络图、优先矩阵)

weixin_42081167的博客 4603

【leetcode】【easy】【每日一题】509. 斐波那契数

509. 斐波那契数 斐波那契数,通常用F(n)表示,形成的序列称为斐波那契数列。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1)= 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 给你n,请计算F(n)。 示例 1: 输入:2 输出:1 解释:F(2) = F(1) + F(0) = 1 + 0 = 1 示例 2: 输入:3 输出:2 解释:F(3) = F(2) + F(1)...

lemonade13的博客 195

9 海康视觉平台VisionMaster 上手系列:典型案例之螺丝机案例

海康视觉平台VisionMaster 上手系列:典型案例之螺丝机案例 快速入门 工业机器视觉 机器视觉

HuangGong2022的博客 7172

Leetcode 509. 斐波那契数 C++

Leetcode 509. 斐波那契数 题目 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 给定 N,计算 F(N)。 测试样例 示例 1: 输入:2 输出:1 解释:F(2) = F(1) + F(0) = 1 + 0 = 1. 示例 2: 输入:3 输出:2 解释:F(3) = F(2

weixin_43750513的博客 219

深入浅出:用状态机搞定FPGA MIG控制器与DDR3的读写时序(附Verilog源码分析)

本文深入解析了如何利用状态机精准控制FPGA MIG控制器与DDR3的读写时序,涵盖Verilog源码实现、关键时序控制点及实战优化技巧。通过状态机设计、跨时钟域处理和带宽优化等方法,有效提升DDR3访问效率,适用于高性能计算和AI加速器等场景。

weixin_26899659的博客 408

(付费请教,防遗忘记录)为什么EDEM bondV1 V2添加后还是没有胶结?????

最近用到了EDEM的胶结功能,在添加了bond V1和V2后,我发现无论颗粒半径设置为多少,接触半径设置为多少,胶结键的参数设置为多少,bond generated数量均为0!!!在后处理中bond中的力也通通为0!!我跟我的同门百思不得其解!!!!最终付费请教了一个大牛,解决了这个问题!!!!答案在文末

zheaa的博客 3101

LeetCode509. 斐波那契数

LeetCode509. 斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 给定 N,计算 F(N)。 来源:力扣(LeetCode) 链接:https://leetcod...

五更依旧朝花落的博客 180

安卓开发工程师在车载项目中的角色与技术实践

本文全面探讨了安卓开发工程师在车载项目中的关键角色,重点分析了技术栈(Kotlin/Java/Gradle)、岗位职责和任职要求。文章详细解读了车载安卓开发的核心技能,包括架构设计、性能优化和缺陷修复,并提供了20个针对性面试问题及答案。特别强调了车载环境的特殊需求,如硬件集成、安全认证和实时性要求。通过技术深度与实践案例的结合,为开发者和企业提供了从需求分析到系统优化的完整指导,旨在提升车载安卓开发的专业水平和招聘效率。

郑伟强dev的专栏 131

【LeetCode】 509 斐波那契数

存在递推关系的可以考虑动态规划。动态规划的空间复杂度的降阶优化可以通过滚动窗口动态记录参与递推的前项值来实现。

weixin_44961802的博客 490

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Leetcode509. 斐波那契数(GIF图解)

Leetcode509.斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 给定 N,计算 F(N)。 **示例 1**: 输入:2 输出:1 解释:F(2) = F(1) +...

weixin_43294413的博客 1065

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LeetCode 509. 斐波那契数

LeetCode 509. 斐波那契数 文章目录题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结 题目描述 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 给定 n ,请计算 F(n) 。 输入:n = 2 输出:1 解释:F(2) = F(1) + F(

Datao_csdn的博客 293

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

509. 斐波那契数、Leetcode的Go实现

博客主页:🏆看看是李XX还是李歘歘🏆 🌺每天分享一些包括但不限于计算机基础、算法等相关的知识点🌺 💗点关注不迷路,总有一些📖知识点📖是你想要的💗 ⛽️今天的内容是Leetcode509. 斐波那契数⛽️💻💻💻 509. 斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1)= 1 F(n) = F(n - 1) + F(n - 2),其中 n &g...

分享包括但不限于计算机基础知识、数据结构与算法、Golang技术栈。年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及! 588

LeetCode.509.斐波那契数

LeetCode.509.斐波那契数 难度:easy 两种方法动态规划方法和递归的方法: Java: 动态规划: 确定dp数组及下标位置:dp[i]的定义为:第i个数的斐波那契数值是dp[i] 递推公式: dp[i] = dp[i-1] +dp [i-2] dp数组初始化: dp[0] = 0; dp[1] = 1; 遍历顺序:从前往后 举例推导dp数组 //非压缩状态的版本 class Solution { public ...

超级马里奥 的博客 312

【LeetCode 509. 斐波那契数】

LeetCode 509. 斐波那契数 题目描述 解题思路 一、迭代 class Solution { public int fib(int n) { if(n == 0 || n == 1) return n; //dp[i]: 第i个斐波拉契数 dp[i] = dp[i-1] + dp[i-2] int[] dp = new int[n + 1]; dp[1] = 1; for(int i = 2; i <

QSilenceH的博客 546

Leetcode—509.斐波那契数【简单】

运行结果 之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

Atticus的博客 381

509.斐波那契数

leetcode 题目: 509.斐波那契数

2301_76145947的博客 89

Leetcode509. 斐波那契数

Leetcode509. 斐波那契数

ProgramNovice的博客 231
上一篇: 动态规划之经典案例《0-1背包问题》详解
下一篇: 70. 爬楼梯
MegaBytes
博客等级 码龄8年 45粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值