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


    开始 


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

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

    首先看题目

    题目

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

    1. F(0) = 0, F(1) = 1
    2. 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从第二个开始(为什么从第二个开始自己想,前面已经说过了)

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

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

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

    最后执行一下代码

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

  • 相关阅读:
    electron build 打包时,背景图片失败,background-image: url 被转换成app:///img/
    centos安装NIS
    MySQL数据库企业级开发技术(下篇)
    文件基本操作
    golang编译器提示Exported method with the unexported return type(公开、私有类型的用途)
    SpringBoot-JSR303数据校验
    《信息学奥赛一本通》最小花费
    MSP430F5529库函数——模数转换模块(ADC12)软件触发
    项目管理过程组
    机器人地面站-[QGroundControl源码解析]-[3]-[ADSB]
  • 原文地址:https://blog.csdn.net/m0_56344602/article/details/127488224