零基础刷LeetCode-10- I. 斐波那契数列(javaScript实现)

开始 


        小伙伴们大家好,说到算法大家都不陌生,在我们的面试过程中或多或少都会遇到一些算法相关的内容,很多刚入行的小伙伴对于算法可能比较陌生,这里我会带领大家从最简单的算法题开始上手,从简单的算法与数据结构开始到后面Vue,React中用到的diff算法,任务调度等。让大家彻底掌握前端常用的算法。

接下里我们就进入到我们的实战部分!

首先看题目

题目

写一个函数,输入 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。

 分析 

 这是力扣上一道非常经典的算法题,首先看题目,写一个函数,输入 n ,求斐波那契数列的第 n 项(即 F(N))。首先我们的函数中给定n一个范围 如果我们的n小于等于1那么就直接retuen我们n,上面已经说明了,当我们的n等于0或1的时候就是他本身。

接着往下,题意上面说我们的答案需要取模

 这里取模的原因是因为我们可能涉及到的数值会非常大,那么如果我们的数字非常大的话就有可能会溢出。为了防止溢出所以我们就需要取模。

 但是这里取模如果数值过小又可能会导致数值重复冲突,所以这里我们需要找一个较大的质数取模,这里就要到了1e9+7

我们首先需要定义一个数组将我们每次求到的值记录下来。

const arr = [0,1]

接着往下我们返回的时候直接返回第n个值就可以了

 return arr[n]

解下来我们就要求我们的fn了。

我们先来一个for循环循环我们的n然后i从第二个开始(为什么从第二个开始自己想,前面已经说过了)

    for(let i =2;i<=n;i++){
        
    }

接着我们就可以通过我们前两个的值求到我们第三个的值,然后将值取模一下就可以了

     arr[i] =arr[i-1] + arr[i-2]
     arr[i] %=(1e9+7)

最后执行一下代码

 这样我们的斐波那契数列我们就解答完毕了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海海呐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值