剑指offer10 斐波那契数列

【openEuler容器镜像部署指南】 【代码】【List集合排序 】 阅读详情

剑指offer10 斐波那契数列

    输入一个整数 n ,求斐波那契数列的第 n 项。
    假定从0开始,第0项为0。(n<=39)

样例

输入整数 n=5 
返回 5

思路1:

    递归的方法,重要的是写明确递归结束的条件,C++代码可以正常通过,python代码溢出

AcWing-21 C++ code:

    class Solution {
    public:
        int Fibonacci(int n) {
            if(n == 0 || n == 1){
                return n;
            }
            return Fibonacci(n - 1) + Fibonacci(n - 2);
        }
    };

AcWing-21 python code:


    class Solution(object):
        def Fibonacci(self, n):
            """
            :type n: int
            :rtype: int
            """
            if n == 0 or n == 1:
                return n
            return self.Fibonacci(n - 1) + self.Fibonacci(n - 2)

思路2:

&nobsp;&nobsp;&nobsp;&nobsp;用一个数组记录结果,然后依次迭代计算出n的时候的值
&nobsp;&nobsp;&nobsp;&nobsp;时间复杂度和空间复杂度都为O(n)

AcWing-21 C++ code:

    class Solution {
    public:
        int Fibonacci(int n) {
            int res[40];
            res[0] = 0;
            res[1] = 1;
            for(int i = 2; i <= n; i++){
                res[i] = res[i - 1] + res[i - 2];
            }
            return res[n];
        }
    };

AcWing-21 python code:

    class Solution(object):
        def Fibonacci(self, n):
            """
            :type n: int
            :rtype: int
            """
            res = []
            res.append(0)
            res.append(1)
            for i in range(2, n+1):
                res.append(res[-1] + res[-2])
            return res[n]

思路3:

&nobsp;&nobsp;&nobsp;&nobsp; 用三个变量记录,然后依次迭代计算出n的时候的值。
&nobsp;&nobsp;&nobsp;&nobsp;时间复杂度为O(n),空间复杂度为O(1)

AcWing-21 C++ code:

    class Solution {
    public:
        int Fibonacci(int n) {
            if(n == 0 || n == 1){
                return n;
            }
            int res_left = 0;
            int res_right = 1;
            for(int i = 2; i <= n; i++){
                res_left = res_left + res_right;
                swap(res_left, res_right);
            }
            return res_right;
    
        }
    };

AcWing-21 python code:

    class Solution(object):
        def Fibonacci(self, n):
            """
            :type n: int
            :rtype: int
            """
            if n == 0 or n == 1:
                return n
            res_left = 0
            res_right = 1
            for i in range(2, n + 1):
                res = res_left + res_right
                res_left = res_right
                res_right = res
            return res
<PLC><socket><汇川>汇川PLC使用socket与其他控制器(如上位机)通讯模板程序示例 以上介绍了汇川PLC通用socket通讯的示例,事实上,汇川的官方手册也有使用示例,可以直接仿照使用,也可以加以修改。 阅读详情

相关推荐

DFT与机器学习协同设计高效光催化剂:从电子结构到性能预测

密度泛函理论(DFT)作为计算材料学的基石,通过求解Kohn-Sham方程,能够在原子尺度精确预测材料的电子结构、能带和光学性质,为理解光催化等能源材料的微观机理提供了关键视角。其核心价值在于替代传统试错法,实现材料性能的理性设计与机理揭示。在工程实践中,面对高通量筛选的需求,机器学习(ML)技术,特别是长短期记忆网络(LSTM)这类擅长处理序列数据的模型,能够学习从材料描述符到复杂性能(如光谱)的映射关系,实现快速性能预测与优化。这种DFT与ML的结合范式,正广泛应用于新能源材料、半导体器件等领域,用于高

weixin_30662937的博客 661

剑指Offer10-I.斐波那契数列

原题LeetCode链接:剑指Offer 10-I. 斐波那契数列 文章目录题目:斐波那契数列思路1.递归法2.动态规划C++代码复杂度分析3.优化的动态规划算法C++代码复杂度分析 题目:斐波那契数列 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答

点滴初学者的博客 652

NVMe与PCIe的完美结合:高速存储背后的技术解析

本文深入解析了NVMe与PCIe技术如何完美结合,实现高速存储性能的飞跃。从机械硬盘到NVMe SSD的进化历程出发,详细介绍了PCIe总线的高带宽优势与NVMe协议的低延迟设计,以及两者协同工作带来的显著性能提升。通过实测数据对比,展示了NVMe SSD在消费级和企业级应用中的卓越表现,并提供了选购与优化建议。

weixin_29216353的博客 376

剑指Offer学习 10-1.斐波那契数列

剑指Offer学习 05.替换空格剑指Offer学习 10-1.斐波那契数列题目描述几种做法: 剑指Offer学习 10-1.斐波那契数列 题目描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(100000

qq_37973756的博客 242

Python 爬取新浪财经 7x24(1): 下载数据

前言 最近在做一个需要很多财经数据的项目。于是想到可不可以通过爬虫来解决(尝试白嫖)。 提供财经数据的网站有很多个,其中比较靠谱和更新比较及时的应该是新浪7x24 live数据。 http://finance.sina.com.cn/7x24/?tag=0 这个问题有一定的难度,因为这个网页是动态加载的。每一次只会加载部分数据,而只有拉到底部才可以加载新的数据。 于是乎,我们要做的事情是: 下载数据 保存到数据库 本篇介绍如何下载数据。 代码 闲言少叙书归正文,代码的实现如下: import reque

ZJ_11701的博客 2905

数据中台:大数据平台,数据仓库(DM),数据中台之间的联系以及异同分析

大数据平台是一个技术平台。这个技术平台提供了对于大数据的分布式采集,存储,流处理和计算,实时分析等能力。在没有大数据平台前也有数据集成和管理的平台,这种平台可以实现对结构化数据本身的采集,集成和管理。 管理平台,是在原生的大数据生态的基础之上,为了更好的管理集群服务,管理集群的资源,提供灵活SRE能力和资源核算审计能力的一系列工具和合称整体架构数据中台包括数据仓库的全部内容,数据仓库为数据中台提供了数据对外提供服务的基础资源,数据中台将数据仓库建设的投入价值进行最大化,以加快数据赋能业务的速度大家都知道数据

GIS摆渡人 2131

剑指offer-面试题10-斐波那契数列

优化递归: 递归会重复计算大量重复的数据,所以需要数组把结果存储起来 public class Solution{ public int Fibonacci(int n){ int ans[]=new int[40]; ans[0]=0; ans[1]=1; for(int i=2;i<=n;i++){ ans[i]=ans[i-1]+ans[i-2]; } return ans[n]; } .

qq_29423387的博客 242

【Oracle】Oracle rman工具使用(真的细)

Oracle RMAN(Recovery Manager)是Oracle数据库备份和恢复的官方工具,它提供的备份和恢复功能非常强大和可靠。RMAN可以备份整个数据库或特定表空间、数据文件、控制文件和归档日志,同时还可以进行增量备份和增量恢复。RMAN还提供了诸如备份验证、备份优化、备份复制、备份集管理、恢复操作、自动备份、自动恢复等高级功能。它使用的备份和恢复格式是Oracle通用的备份集(Backup Set),这使得备份和恢复非常灵活和高效。

tttzzzqqq2018的博客 8501

剑指offer10-1 斐波那契数列

剑指offer10-1 斐波那契数列 题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 解法1:递归 很多新手一上来就会想到用递归,当然,结

weixin_44359566的博客 196

NVIDIA GR00T SONIC - 人形机器人强化学习全身控制入门教程(一)

SONIC 是一个类人行为基础模型,它为机器人提供了一套从大规模人类动作数据中学习而来的核心运动技能。与为每个动作单独构建控制器不同,SONIC 将动作追踪作为可扩展的训练任务,因此单一套统一策略即可产生自然的全身运动,并支持多种多样的行为。         🎯 主要特点: 🚶 自然的全身运动(行走、爬行、动态动作) 🎮 支持实时 VR 遥操作 🤖 高级规划与交互的基础 📦 即用型 C++ 推理栈

2506_90492529的博客 837

网页内容抓取的艺术:使用R语言解析动态网页

本文探讨了使用R语言处理动态网页数据的方法。针对AJAX加载的学术网站,传统的静态抓取和RSelenium方法存在会话终止、浏览器错误等问题。通过分析发现内容通过admin-ajax.php加载,提出使用httr2模拟POST请求获取数据,配合rvest解析HTML内容。该方法避免了浏览器自动化的弊端,实现了高效稳定的动态内容提取,为处理类似AJAX网站提供了通用解决方案。

m0_74337424的博客 52

剑指 Offer 10- I. 斐波那契数列

LeetCode:剑指 Offer 10- I. 斐波那契数列 class Solution { public int fib(int n) { if(n == 0 || n == 1) return n; long[] res = new long[101]; res[1] = 1; long count = 1000000007; for(int i = 2; i <= n ; i++){

lankerens 192

具身智能 | 从具身智能出发谈多传感器融合技术

多传感器融合感知是具身智能系统突破“感知—认知—行动”闭环的核心使能技术。本文从具身智能的视角出发,对多传感器融合技术进行系统综述。首先阐述了具身智能对多传感器融合提出的独特需求,包括异构感知集成、跨模态语义对齐和实时闭环决策。其次,构建了多层级融合技术分类框架,从数据层融合、特征层融合、决策层融合、时序融合到多模态大语言模型(MLLM)融合,逐层梳理主流方法与演进脉络。在此基础上,分析了面向具身智能的通用融合架构设计,涵盖了感知—推理—执行三层架构及其关键组件。

尘世冰封的专栏 310

Leetcode 剑指 Offer 10- I 斐波那契数列 和 剑指 Offer 10- II 青蛙跳台阶问题

迭代算法的时间和内存损耗以及源代码: int fib(int n){ if (n == 0) { return 0; } else if (n == 1) { return 1; } else { return fib(n-1)+fib(n-2); } } 迭代算法虽然简洁但是时间和内存消耗(会造成栈溢出)都很多,因此需要用循环来解这道题。 时间和内存消耗以

qq_33146555的博客 412

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

剑指Offer 10-Ⅰ.斐波那契数列(C++)

利用「尾递归」、「动态规划」、「递推」和「矩阵快速幂」来解决问题。

Dululuya 654

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

14. leetCode-剑指Offer10-I斐波那契数列

写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。 F(N) = F(N - 1) + F(N - 2)

weixin_45267102的博客 303

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

剑指offer JZ10 斐波那契数列

根据斐波那契数列的定义可知,fib(1)=1,fib(2)=1,fib(3)=fib(3-1)+fib(3-2)=2,fib(4)=fib(4-1)+fib(4-2)=3,所以答案为3。要求:空间复杂度 O(1),时间复杂度 O(n) ,本题也有时间复杂度 O(logn) 的解法。大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。斐波那契数列是一个满足。数据范围:1≤n≤40。

qq_74980411的博客 268

【LeetCode】剑指 Offer 10- I. 斐波那契数列

剑指 Offer 10- I. 斐波那契数列

2022年毕业的萌新程序猿,输出一下自己的学习内容~ 341

leetcode-剑指 Offer 10- I. 斐波那契数列

leetcode-剑指 Offer 10- I. 斐波那契数列 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n =

ITAK_fans的博客 230

LeetCode 剑指 Offer 10- I. 斐波那契数列

写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

编程技术, 日益精进 513

LeetCode刷题记录:剑指 Offer 10- I. 斐波那契数列

剑指 Offer 10- I. 斐波那契数列 解题思路: 根据输入的 n 声明一个数组,定义好数组的前两项(即第 0 项和第 1 项目),从第三项开始遍历数组,使数组的每一项等于前两项之和。最后返回第 n 项。 值得注意: 数组的大小应为 n + 1 。因为需要多装一个第 0 项的 0 。 通关代码: class Solution { public: int fib(int n) { if (n == 0 || n == 1) { return n; } v

英雄爱吃土豆片的博客 203

力扣leetcode剑指 Offer 10- I. 斐波那契数列C++

力扣leetcode剑指 Offer 10- I. 斐波那契数列C++ 题目链接 剑指 Offer 10- I. 斐波那契数列 如果看不懂的话可以阅读下面这篇文章,里面对不同方法实现进行了介绍 前导文章 力扣 leetcode70. 爬楼梯C++三种方法实现优化 class Solution { public: int fib(int n) { if(n < 2) return n; int a = 0; int b =

qq_36711295的博客 207
上一篇: 剑指offer9 用两个栈实现队列
下一篇: 剑指offer11 旋转数组的最小数字
WangXu__
博客等级 码龄9年 3粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值