前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >剑指 Offer(C++版本)系列:剑指 Offer 10- I 斐波那契数列

剑指 Offer(C++版本)系列:剑指 Offer 10- I 斐波那契数列

作者头像
我是管小亮
发布于 2021-07-20 03:25:02
发布于 2021-07-20 03:25:02
36700
代码可运行
举报
运行总次数:0
代码可运行

同步GitHub在此 ? https://github.com/TeFuirnever/GXL-Skill-Tree

1、题干

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

斐波那契数列

写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:

F(0) = 0,   F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
斐波那契数列由 01 开始,之后的斐波那契数就是由之前的两数相加而得出。

答案需要取模 1e9+71000000007),如计算初始结果为:1000000008,请返回 1。

 

示例 1:

输入:n = 2
输出:1
示例 2:

输入:n = 5
输出:5
 

提示:

0 <= n <= 100
通过次数190,890提交次数552,092


2、递归法

算法流程:

  • 转移方程:即对应数列定义 f(n + 1) = f(n) + f(n - 1);
  • 初始状态:即初始化前两个数字;
  • 返回值:即斐波那契数列的第 n 个数字。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//面试题10- I. 斐波那契数列
//标准做法
class Solution {
public:
 int fib(int n) {
  int a = 0, b = 1, c = 0;
  for (int i = 0; i < n; ++i)
  {
   a = b, b = c;
   c = (a + b) % 1000000007;
  }
  return c;
 }
};

//long long 更佳

4、复杂度

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*
时间复杂度O(n), 迭代n次
空间复杂度O(1)
*/
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员管小亮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
剑指 Offer(C++版本)系列:剑指 Offer 10- II 青蛙跳台阶问题
同步GitHub在此 ? https://github.com/TeFuirnever/GXL-Skill-Tree 剑指 Offer(C++版本)系列:总目录和一些提高效率的说明 剑指 Offer(
我是管小亮
2021/07/20
3350
剑指 Offer(C++版本)系列:剑指 Offer 11 旋转数组的最小数字
同步GitHub在此 ? https://github.com/TeFuirnever/GXL-Skill-Tree 剑指 Offer(C++版本)系列:总目录和一些提高效率的说明 剑指 Offer(
我是管小亮
2021/07/20
3350
剑指 Offer(C++版本)系列:剑指 Offer 13 机器人的运动范围
同步GitHub在此 ? https://github.com/TeFuirnever/GXL-Skill-Tree 剑指 Offer(C++版本)系列:总目录和一些提高效率的说明 剑指 Offer(
我是管小亮
2021/07/20
4160
剑指 Offer(C++版本)系列:剑指 Offer 12 矩阵中的路径
同步GitHub在此 ? https://github.com/TeFuirnever/GXL-Skill-Tree 剑指 Offer(C++版本)系列:总目录和一些提高效率的说明 剑指 Offer(
我是管小亮
2021/07/20
7040
剑指 Offer:10- I. 斐波那契数列
1. 题目 剑指 Offer 10- I. 斐波那契数列 2. 描述 写一个函数,输入 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
村雨遥
2022/06/15
1680
剑指 Offer:10- I. 斐波那契数列
剑指offer | 面试题8:斐波那契数列
题目描述:写一个函数,输入 n,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:
千羽
2021/12/29
1940
剑指offer | 面试题8:斐波那契数列
剑指 offer 面试题精选图解 10-I.斐波那契数列
大家好,我是程序员吴师兄,欢迎来到图解剑指 Offer 专栏,在这个专栏里我将和大家一起学习如何用合理的思维来思考、解题、写代码。
五分钟学算法
2021/04/20
5020
剑指 Offer(C++版本)系列:剑指 Offer 09 用两个栈实现队列
同步GitHub在此 ? https://github.com/TeFuirnever/GXL-Skill-Tree 剑指 Offer(C++版本)系列:总目录和一些提高效率的说明 剑指 Offer(
我是管小亮
2021/07/20
2620
剑指 Offer 10- I. 斐波那契数列
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。
Vincent-yuan
2021/06/29
3610
剑指 offer | 10- I. 斐波那契数列和10- II. 青蛙跳台阶问题
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:
孟君
2023/02/23
2980
剑指 offer | 10- I. 斐波那契数列和10- II. 青蛙跳台阶问题
剑指 Offer(C++版本)系列:剑指 Offer 07 重建二叉树
同步GitHub在此 ? https://github.com/TeFuirnever/GXL-Skill-Tree 剑指 Offer(C++版本)系列:总目录和一些提高效率的说明 剑指 Offer(
我是管小亮
2021/07/20
2820
剑指Offer LeetCode 面试题10- I. 斐波那契数列
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:
手撕代码八百里
2020/07/28
4230
剑指 Offer(C++版本)系列:剑指 Offer 05 替换空格
同步GitHub在此 ? https://github.com/TeFuirnever/GXL-Skill-Tree 剑指 Offer(C++版本)系列:总目录和一些提高效率的说明 剑指 Offer(
我是管小亮
2021/07/20
4250
剑指 Offer(C++版本)系列:剑指 Offer 06 从尾到头打印链表
同步GitHub在此 ? https://github.com/TeFuirnever/GXL-Skill-Tree 剑指 Offer(C++版本)系列:总目录和一些提高效率的说明 剑指 Offer(
我是管小亮
2021/07/20
2920
剑指Offer - 面试题10- I. 斐波那契数列
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:
Michael阿明
2020/07/13
3230
剑指Offer - 面试题10- I. 斐波那契数列
剑指 Offer(C++版本)系列:剑指 Offer 04 二维数组中的查找
同步GitHub在此 ? https://github.com/TeFuirnever/GXL-Skill-Tree 剑指 Offer(C++版本)系列:总目录和一些提高效率的说明 剑指 Offer(
我是管小亮
2021/07/20
5230
LeetCode刷题记录:剑指 Offer 10- I. 斐波那契数列
解题思路: 根据输入的 n 声明一个数组,定义好数组的前两个元素(即第 0 项和第 1 项),从第三个元素开始遍历数组,使数组的每一个元素等于前两个元素之和。最后返回第 n 个元素。
英雄爱吃土豆片
2020/10/29
2160
LeetCode刷题记录:剑指 Offer 10- I. 斐波那契数列
剑指offer | 面试题10:青蛙跳台阶问题
题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。
千羽
2021/12/29
4800
剑指offer | 面试题10:青蛙跳台阶问题
LeetCode题解—斐波那契数列
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:
码上积木
2021/02/08
1.1K0
剑指Offer:面试题10-I. 斐波那契数列
本文最后更新于 732 天前,其中的信息可能已经有所发展或是发生改变。 1.要点 Java中基本类型的取值范围 斐波拉奇数列从后往前递归时会有大量重复运算。例如 fn(10)=fn(9)+fn(8) fn(9)=fn(8)+fn(7) fn(8)重复运算了 2.题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) = 0,   F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和
Yuyy
2022/06/28
2070
推荐阅读
相关推荐
剑指 Offer(C++版本)系列:剑指 Offer 10- II 青蛙跳台阶问题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验