首页 > 编程语言 >算法题--斐波那契数列

算法题--斐波那契数列

时间:2022-11-13 15:31:28浏览次数:35  
标签:down 数列 -- 函数调用 斐波 int 那契

9

要求

时间限制:1秒 空间限制:32768K

题目描述

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。

n<=39

解题思路

这道题可以直接用递归来解决,但是递归速度慢(函数调用、重复计算)、容易导致栈溢出(函数调用层级多) 重复计算如下图所示:

重复计算的问题可以用一个memory来解决,也就变成了top-down形式的动态规划

为了减少函数调用,使用down-top形式的动态规划来解决

一般只要能写出状态转换方程就可以写出down-top动态规划

C++代码

//斐波那契数列:f(n)=f(n-1)+f(n-2),n>=2,f(0)=0,f(1)=1
//此代码已经降维,由一维数组降成了两个点(last和lastlast),因为每一个状态都只用到了之前的两个状态
class Solution {
public:
  int Fibonacci(int n) {
    if(n == 0)
      return 0;
    if(n == 1)
      return 1;
    
    int lastlast = 0;
    int last = 1;
    int cur = 0;
    for(int i = 2;i <= n;++i){
      cur = last + lastlast;
      lastlast = last;
      last = cur;
    }
    
    return cur;
  }

由于还要搬砖,没有办法一一回复私信把学习资料发给大家。我直接整理出来放在下面,觉得有帮助的话可以下载下来用于学习

链接: ​​​https://pan.baidu.com/s/1C-9TE9ES9xrySqW7PfpjyQ​​​​ 提取码:cqmd 小弟才浅,如果本篇文章有任何错误和建议,欢迎大家留言 感谢各位人才的点赞、收藏、关注 微信搜一搜「三年游戏人」第一时间阅读,获取优质工作内存

标签:down,数列,--,函数调用,斐波,int,那契
From: https://blog.51cto.com/u_11633329/5847761

相关文章

  • scrapy框架运行无结果检查项
    settings.py文件中item管道是否打开,若多个管道是否配置。若多个管道,是否每个管道类都return结果给下一管道。爬虫文件是否yielditem,是否实例化item类。items.py属性名......
  • 从阿里云函数迁移到 aws lambda
    阿里云函数计算最近开始取消每个月的免费额度,吃相难看。虽然我平时跑跑个人的定时任务,用到的资源很少,还是决定迁移到别的平台。让它日活-1也算我做的一个贡献吧。1/安装......
  • mac ifconfig详解
    lo#loopback本机主机地址#flag=8049:网络设备状态标识#UP:网卡处于启动状态#LOOPBACK:IP数据包回送到本机上,通常用于测试网络配置和本地程序之间通信用#R......
  • 一次SpringBoot版本升级,引发的血案
    前言最近项目组升级了SpringBoot版本,由之前的2.0.4升级到最新版本2.7.5,却引出了一个大Bug。到底是怎么回事呢?1.案发现场有一天,项目组的同事反馈给我说,我之前有个接口在......
  • 第一章第3节 2020.04.15 智能互联网之总体架构设计篇【三】
                                           ......
  • Size of的用法
    1#include<cstdlib>2#include<iostream>3#include<iterator>4#include"string.h"5usingnamespacestd;6struct{7shorta1;8shorta2......
  • 装修工程 工作流程
    工作流程:1、通过业务集道获得客户资源2、由业务部/设计总监派发客户给设计师3、设计师获得客户信息肩需联系客户预约量房时间4、到现场进行量房并客户沟通获得客户需求......
  • Mysql InnoDB多版本并发控制MVCC
    参考书籍《mysql是怎样运行的》系列文章目录和关于我一丶为什么需要事务隔离级别mysql是一个客户端/服务断软件,对于同一个服务器来说,可以有多个客户端进行连接,每一个客......
  • 微服务笔记之Eureka03(服务续约分析)
    服务续约接口分析com.netflix.eureka.resources.InstanceResource#renewLeasepublicResponserenewLease(@HeaderParam(PeerEurekaNode.HEADER_REPLICATIO......
  • golang内存对齐的重要性
     结构体中字段类型的改变直接造成内存对齐结果的改变,是的占用内存空间也不一样packagemainimport( "fmt" "unsafe")funcmain(){ varxxstruct{ aboo......