当前位置: 首页 > ai >正文

LintCode第366题-斐波那契数列

描述

查找斐波纳契数列中第 N 个数。(N 从 1 开始)

所谓的斐波纳契数列是指:

  • 前2个数是 0 和 1 。
  • 第 i 个数是第 i-1 个数和第i-2 个数的和。

斐波纳契数列的前10个数字是:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...

在测试数据中第 N 个斐波那契数不会超过32位带符号整数的表示范围

样例  1:输入:  1输出: 0样例解释: 返回斐波那契的第一个数字,是0.样例 2:输入:  2输出: 1样例解释: 返回斐波那契的第二个数字是1.

斐波那契数列满足以下递推关系:

F(n)=F(n−1)+F(n−2)F(n) = F(n-1) + F(n-2) 

解题思路1:递归 下面的代码正确但会产生大量不必要的递归和累加,造成代码执行超时

代码1: 

代码如下:

public class Solution {

    /**

     * @param n: an integer

     * @return: an integer f(n)

     */

    public int fibonacci(int n) {

        // write your code here

        if(n<=1)

        {

            return 0;

        }

        if(n==2)

        {

            return 1;

        }

       return fibonacci(n-1)+fibonacci(n-2);

    }

}

我们可以只单纯记录n的累加和即

代码如下:

public class Solution {

    /**

     * @param n: an integer

     * @return: an integer f(n)

     */

    public int fibonacci(int n) {

        // write your code here

       

        if(n<=1)

        {

            return 0;

        }

        if(n==2)

        {

            return 1;

        }

        int sumLeft=0;

        int sumRight=1;

        int sum=0;

       for(int i=3;i<=n;i++)

       {

           sum=sumLeft+sumRight;

           sumLeft=sumRight;

           sumRight=sum;

       }

       return sum;

    }

}

 

http://www.xdnf.cn/news/5269.html

相关文章:

  • 各种环境测试
  • 解释器和基于规则的系统比较
  • 【Linux基础】文件和目录管理指令
  • 对日开发 TeraTerm ttl脚本开发环境配置
  • python04——条件判断(选择结构)
  • 部署RocketMQ
  • 数孪实战笔记(1)数字孪生的含义、应用及技术体系
  • java-代理
  • [特殊字符] AI网关:大模型时代的智能交通指挥官 [特殊字符]
  • 科大讯飞TTS(文字转语音)和STT(语音转文字)
  • 如何将 Windows 11 的开始菜单移到左侧
  • ECMAScript 2017(ES2017):异步编程与对象操作的革新
  • CUDA编程——性能优化基本技巧
  • 常用的Linux命令100条
  • python 版本管理用的是pyenv pip install 把东西安装到那里了,好的检测方法,注意是windows环境
  • RENAME 语句与RENAME选项学习
  • 理解Yocto项目中`${D}`作为模拟目标系统根文件结构的临时目录
  • 投影显示技术全解析:主流方案对比与雷克赛恩 CyberPro1 的核心优势
  • 【桌面】【输入法】常见问题汇总
  • Day 14
  • 介绍一下synchronized锁升级过程
  • 2024年AI发展趋势全面解析:从多模态到AGI的突破
  • LintCode第485题-生成给定大小的数组,第220题-冰雹猜想,第235题-分解质因数
  • JDBC演进之路:从基础操作到高效连接池
  • 计算机科技笔记: 容错计算机设计03 系统可信性的度量 偶发故障期 浴盆曲线 韦布尔分布
  • 工程师视角下的 AI 浏览器智能体拆解(AI Browser Agent from an Engineer‘s Perspective)
  • TWAS、GWAS、FUSION
  • 使用Simulink开发Autosar Nvm存储逻辑
  • Qt开发经验 --- 避坑指南(11)
  • Ctrl + D是如何与内核文件结束符对应的?如何模拟文件结束符?数字中间为什么不能插入空格或逗号?丰富多彩的语句结束符或分隔符?语句结束符?