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

LeetCode509:斐波那契数列

代码如下

class Solution {
public:
    int fib(int n) {
        //这个是为了特殊n,当n = 0时, 当 n = 1时。
        if(n == 0)  return 0;
        if(n == 1)  return 1;
        //第一次开dp专题,连dp数组都忘记定义了。只写了下面,哭
        vector<int> dp(n + 1, 0);
        dp[0] = 0;
        dp[1] = 1; 
        //dp转移状态方程
        for(int i = 2; i < n + 1; i++)
        {
            dp[i] = dp[i - 1] + dp[i - 2];
        }
        return dp[n];
    }
};

        实际上我代码里面都是我要讲的东西了,同学们很多时候编写斐波那契,就喜欢按照正常的编写或者递归,实际上这两种都可以,但是有些时候题目要求限制时间的话,那就只能以空间换时间,动态规划的本质就是,把之前的求的数据存到dp数组中,后面可以用dp数组转移,然后占据较大空间来减少时间复杂度。


http://www.kler.cn/a/306252.html

相关文章:

  • 【缺陷检测】Anomaly Detection via Reverse Distillation from One-Class Embedding
  • 操作系统lab4-页面置换算法的模拟
  • 学法减分交管12123模拟练习小程序源码前端和后端和搭建教程
  • 阿里云和七牛云对象存储区别和实现
  • 45.第二阶段x86游戏实战2-hook监控实时抓取游戏lua
  • AutoCad 无界面开发
  • 4.C_数据结构_队列
  • Java异常处理详细讲解及常见面试问题
  • 无人机巡检:突破传统局限,引领智能监测新时代
  • java 网络编程URL与URLConnection的使用
  • 深入解析 Apache Ranger
  • 电容的不同材质对应的温度范围
  • Redis主要问题(缓存问题)
  • pyflink 安装和测试
  • Matlab simulink建模与仿真 第十四章(信号输出库)
  • 计算机毕业设计 智慧物业服务系统的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • Elasticsearch 聚合搜索
  • 网络安全 L2 Introduction to Cryptography 密码学
  • 学习整理vue前端框架项目目录结构的含义
  • Rust 所有权 Slices
  • 64. 求 1+2+…+n
  • Python快速入门 —— 第二节:函数与控制语句
  • 【C++】c++的继承
  • 面试常见题之spring
  • JAVA实现压缩包解压兼容Windows系统和MacOs
  • 【机器学习】期望最大化算法的基本概念以及再高斯混合模型的应用