【动态规划-简单】剑指 Offer 10- I. 斐波那契数列

配电网可靠性评估(一)—最小路法和非序贯蒙特卡洛模拟法的matlab实现 电力系统的可靠性研究是相关领域的热点问题。根据研究对象的不同,又可分为发电系统的可靠性,输电系统的可靠性和配电系统的可靠性。配电网在电力系统中处于最末端的位置,直接和用户相连,一旦出现故障情况,就会在用户侧表现为停电事故。因此对配电网的可靠性评估有着重大意义。...... 阅读详情

【题目】
写一个函数,输入 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 = 2
输出:1

示例 2:

输入:n = 5
输出:5

提示:

0 <= n <= 100

【代码】
【方法1】
在这里插入图片描述

class Solution:
    def fib(self, n: int) -> int:
        prev,now=1,1
        for i in range(3,n+1):
            presave=prev
            prev=now
            now+=presave
            now%=1000000007
        return now if n else 0

【方法2:快速幂】
在这里插入图片描述

class Solution:
    def fib(self, n: int) -> int:
        def cal(matrix_a,matrix_b):
            ans=[[0,0],[0,0]]
            for i in range(2):
                for j in range(2):
                    ans[i][j]=(matrix_a[i][0]*matrix_b[0][j]+matrix_a[i][1]*matrix_b[1][j])%1000000007
            return ans
        matrix_a=[[1,1],[1,0]]
        res=[[1,0],[0,1]]
        for i in range(n-1):
            res=cal(matrix_a,res)
        return res[0][0] if n else 0

【方法3:快速幂】
在这里插入图片描述

class Solution:
    def fib(self, n: int) -> int:
        def cal(matrix_a,matrix_b):
            ans=[[0,0],[0,0]]
            for i in range(2):
                for j in range(2):
                    ans[i][j]=(matrix_a[i][0]*matrix_b[0][j]+matrix_a[i][1]*matrix_b[1][j])%1000000007
            return ans

        def matrix_pow(a, n):
            ret = [[1, 0], [0, 1]]
            while n > 0:
                if n & 1:
                    ret = cal(ret, a)
                n >>= 1
                a = cal(a, a)
            return ret

        res = matrix_pow([[1, 1], [1, 0]], n - 1)
        return res[0][0] if n>=2 else n
采样率转化代码C++(有理倍数,升采样、降采样均可) 【代码】采样率转化(有理倍数,升采样、降采样均可) 阅读详情

相关推荐

电机控制个人学习路线及专业书籍资源分享

个人学习电机控制的学习路线,和相关专业书的电子文档分享

weixin_45182459的博客 9916

每日一课 | 斐波那契数列的第n个项

Python程序借助两种方法来计算斐波那契数列的第n个项 (有许多方法可以计算第n个项)。描述:第一种方法:动态编程在这种方法中,我们计算出斐波那契数列直到n的所有项,如果我们需要计算小...

Python大本营的博客 1574

PLS-SEM(偏最小二乘路径建模)模型拟合优度指标

PLS-SEM(偏最小二乘路径建模)是一种基于方差的分析方法,侧重于预测导向,通过迭代优化路径系数和外部权重来最大化潜变量的解释方差(R²)。其评估指标分为外部测量模型和结构模型两部分:外部测量模型关注潜变量与显变量的关系,通过标准化载荷(>0.7)、信度指标(Cronbach’s α、复合信度CR>0.7)、聚合效度(AVE>0.5)和区分效度(Fornell-Larcker标准、HTMT<0.85)来评估模型的可靠性和有效性。结构模型则检验潜变量间的因果关系,通过路径系数(β值)

wewil_lwin的博客 3240

力扣剑指Offer 第8天 动态规划(简单)剑指 Offer 10- I. 斐波那契数列 剑指 Offer 10- II. 青蛙跳台阶问题 剑指 Offer 63. 股票的最大利润

力扣剑指Offer 第8天 动态规划(简单)剑指 Offer 10- I. 斐波那契数列 剑指 Offer 10- II. 青蛙跳台阶问题 剑指 Offer 63. 股票的最大利润 剑指 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 开始,之

Ctrl_kun的博客 268

保姆级教程:用DaVinci Configurator & Developer从零搭建AUTOSAR OS(TC2xx三核实战)

本文提供了一份详细的AUTOSAR OS配置指南,使用DaVinci Configurator和Developer工具从零开始搭建Infineon TC2xx三核系统。涵盖多核配置协同逻辑、版本兼容性陷阱及验证错误的解决方案,帮助开发者在3小时内构建可运行的多核OS框架。

weixin_33940469的博客 317

信号编辑软件ZX/SignalEditing

信号编辑软件ZX/SignalEditing

weixin_45661395的博客 963

剑指offer 面试题10- I. 斐波那契数列 [简单]——动态规划

与LeetCode 509 题相同 我的解题: 注意n是从零开始的 class Solution { public: int fib(int n) { if(n==0) return 0; if(n==1) return 1; int *dp=new int[n+1]; dp[0]=0; ...

Vermouth_Su的博客 311

手把手教你如何修改YOLO11的模型结构(以CBAM和可变性卷积为例)

YOLO11修改模型结构

2401_86807530的博客 1万+

LeetCode 剑指 Offer 10- I. 斐波那契数列【递推/递归/动态规划/打表/矩阵快速幂/数学】简单

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。 为了方便在PC上运行调试、分享代码文件,我还建立了相关的仓库:https://github.com/memcpy0/LeetCode-Conqu.

memcpy0的博客 416

量子城域网建设设备系列(三):网络管理系统(NMS)

本文对量子网络中的网络管理系统进行了初步的介绍。

量子领域相关话题 2014

[PCIE5.0] 4.2.3.2 Encoding of Presets

• 发射器预设:发射器预设值用4位二进制编码,表示不同的预设设置(P0 到 P10),这些设置定义了信号的传输特性。• 接收器预设提示:接收器预设提示是通过3位二进制编码告诉接收器建议的增益值,用于调整接收器的灵敏度(适用于8.0 GT/s数据速率)。

系统固件工程师 575

【LeetCode练习】剑指 Offer 10- I. 斐波那契数列(简单|JS|动态规划)

文章目录一、题目描述二、解题思路三、代码实现 一、题目描述 二、解题思路 方法1:递归不多说,但是会超时。 方法2:动态规划也很简单,要注意的是不能只对最终结果取模,要对每一个结果都取模才行(一开始没发现踩坑了)。 三、代码实现 方法1: var fib = function (n) { if (n == 0) return 0 if (n == 1) return 1 return (fib(n-1) + fib(n-2)) % 1000000007 }; 方法2: v

JJY的博客 442

kylinos-SP3的软件包降级到V10-SP1中的版本

如果想再次回退到原来版本,将repo改为原来的SP3版本,然后执行yum history 查看ID号,执行yum history rollback ID就可以恢复了。此时我们发现已安装的版本是1.32-2.ky10,而sp1网络源里的版本是1.30-11.ky10,我们将降级安装网络源中的低版本软件包。近期有个客户想要把kylinos-V10-sp3的软件包降级到kylinos-V10-SP1的版本。3、以tar包为例,查看已安装版本及网络源中其他版本。1、查看系统版本,确认是V10-SP3。

太极淘的博客 1103

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

题目难度: 简单 原题链接 今天继续更新剑指 offer 系列, 这道题实在太经典了, 它也是动态规划的基础题目, 估计大家都见过, 今天就来复习一下吧~ 另外下面的做法还会有一些空间上的优化, 值得关注 若无意外, 每天晚上 6 点 45 分准时更新, 中间可能会穿插一些周赛题解. 大家在我的公众号"每日精选算法题"中的聊天框中回复 offer 就能看到该系列当前已经更新的文章了 大家有什么想法建议和反馈的话欢迎随时交流, 包括但不限于公众号聊天框/知乎私信评论等等~ 题目描述 写一个.

随便发挥的博客 382

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

剑指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

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【剑指 Offer 10- I】 斐波那契数列 (动态规划)

题目 题目链接 写一个函数,输入 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: 输入:n = 2 输出:1 示例 2: 输入:n = 5 输出:5 解

WormholeStack 1965

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

剑指Offer学习总结-斐波那契数列

剑指Offer学习总结-斐波那契数列 本系列为剑指Offer学习总结,主要是代码案例的分析和实现: 书籍链接:http://product.dangdang.com/24242724.html 原作者博客:http://zhedahht.blog.163.com/blog/static/254111742011101624433132/ 原作者博客链接有完整的项目代码下载。 斐波

那远远的云端 1505

剑指Offer-动态规划 10- I. 斐波那契数列

剑指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: 输入...

Turtle's trail 516

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

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

Dululuya 655

剑指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

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

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

weixin_45267102的博客 303

【剑指 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 = 2 输出:1 示例 2: 输入:n = 5 输出

雪丫头的博客 431

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

题目描述 写一个函数,输入 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: 输入:n = 2 输出:1 示例2: 输入:n = 5 输出:5 递归法 大

小李的博客 548

剑指 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 194

复习剑指offer斐波那契数列

复习剑指offer斐波那契数列 最初想到了递归和迭代在牛客网上都通过,但是发现有时在牛客网上通过的代码在力扣并不能通过,原因是最初用的递归没有任何优化,导致时间超时,复习再学习借鉴了别人的动态规划,目前对动态规划并不熟悉,只知道和递归类似将大问题分解成小问题,不过解决问题的过程中会保留结果,消除了递归中出现的重复计算: 递归中重复计算说明: 动态规划代码: unordered_map<int,int>dmp; int fib(int n) { if(n<2) return n

qq_43248467的博客 236

【剑指Offer】斐波那契数列

文章目录题目描述解法1 递归实现代码解法2 动态规划实现代码动态规划解法3矩阵的快速幂实现代码 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 解法1 递归 解题前先简单说明一下斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……,因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称...

ZhangLei的博客 756
上一篇: 【数据库】windows下neo4j安装笔记
下一篇: 【动态规划-简单】322. 零钱兑换
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值