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

leetcode_动态规划/递归 509. 斐波那契数

509. 斐波那契数

  • 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
    • F(0) = 0,F(1) = 1
    • F(n) = F(n - 1) + F(n - 2),其中 n > 1
  • 给定 n ,请计算 F(n) 。
class Solution(object):def fib(self, n):""":type n: int:rtype: int"""if n < 2:return nf = [0] * (n + 1)f[0] = 0f[1] = 1for n in range(2, n+1):f[n] = f[n-1] + f[n-2]return f[n]
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

空间优化

class Solution(object):def fib(self, n):""":type n: int:rtype: int"""if n < 2:return nprev, curr = 0, 1  # 初始化前两个斐波那契数for _ in range(2, n + 1):prev, curr = curr, prev + curr  # 更新前两个值return curr
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

相关文章:

leetcode_动态规划/递归 509. 斐波那契数

509. 斐波那契数 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1F(n) F(n - 1) F(n - 2)&#xff0c;其中 n …...

对泰坦尼克号沉没事件幸存者数据分析和预测

一、分析目的 探究决定泰坦尼克号沉没事件中什么因素决定着船上人的生死&#xff0c;并对实例进行判别和预测。 二、数据介绍 Titanic.csv数据中包含了891个样本&#xff0c;记录了泰坦尼克号遇难时的891个乘客的基本信息&#xff0c;其中包括以下信息&#xff1a; Passenger…...

算法之排序算法

排序算法 ♥常见排序算法知识体系详解♥ | Java 全栈知识体系 算法 - 排序 | CS-Notes 面试笔记 十大经典排序算法总结 | JavaGuide...

DMA发送全部历史记录数据到串口

背景 博主参与的项目中&#xff0c;有个读取全部历史记录的功能&#xff0c;如果下位机在主程序中将全部历史记录单纯地通过串口传输会比较占用cpu资源&#xff0c;影响主程序中别的功能。最后商量得出以下实现方案&#xff1a; 定义两个发送缓冲区DMATxbuf1和DMATxbuf2&…...

蓝桥杯好题推荐-----高精度减法

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 题目链接 记录详情 - 洛谷 | 计算机科学教育新生态https://www.luogu.com.cn/record/205122671 思路讲解 这个题目的解题思路&#xff0c;其实是和高精度加法是非常像的。怎么说…...

SpringMVC (3)

目录 1. 传递对象 2. 后端参数重命名&#xff08;后端参数映射&#xff09; 3. 传递数组 4. 传递集合 5. 传递JSON数据 5.1 JSON概念 5.2 JSON语法 5.3 JSON字符串和Java对象互转 5.4 JSON优点 5.5 传递JSON对象 6. 获取URL中参数PathVariable 7. 上传文件RequestP…...

vscode使用豆包MARSCode----集成doubao1.5 DeepSeekR1 DeepseekV3模型的ai编程插件

引入扩展 打开VSCode扩展窗口&#xff0c;在搜索窗口搜索MarsCode&#xff0c;找到MarsCode 插件单击「install」&#xff0c;完成安装&#xff0c;登录即可使用MarsCode 编程助手。 主要功能 主要快捷键 / explain 解释项目代码&#xff0c;AI 返回的内容有结构分类&#…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_buf_t

ngx_buf_t 定义在 src/core/ngx_buf.h typedef struct ngx_buf_s ngx_buf_t;struct ngx_buf_s {u_char *pos;u_char *last;off_t file_pos;off_t file_last;u_char *start; /* start of buffer */u_char …...

分布式开源协调服务之zookeeper

Zookeeper简介 Zookeeper是什么&#xff1f; Zookeeper官网中对Zookeeper的定义还是比较明确的&#xff1a; ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services…...

ubuntu系统安装playhouse三方库

ubuntu系统python3.10安装playhouse三方库 问题描述 问题描述 虚拟环境中使用pip install playhouse&#xff0c;返回安装成功 用pip list查看&#xff0c;能看到playhouse及版本号 导包时提示没有找到playhouse我那件目录&#xff0c;能发现 检查site-package发现问题&#x…...

【星云 Orbit-F4 开发板】04.一触即发:GPIO 外部中断

【星云 Orbit-F4 开发板】04. 一触即发&#xff1a;外部中断控制 摘要 本文详细介绍了如何使用STM32F407微控制器的HAL库实现外部中断功能。通过配置GPIO引脚作为外部中断源&#xff0c;并在中断回调函数中处理按键事件&#xff0c;实现了按键控制LED状态翻转的功能。本文旨在…...

笔记二:整数和浮点数在内存中存储

目录 一、数据类型介绍 二、类型的基本归类 1.整形家族&#xff1a; 2.浮点数家族&#xff1a; 3.构造类型&#xff1a; 4.指针类型 5.空类型&#xff1a; 三、整形在内存中的存储 3.1 原码&#xff0c;反码、补码 3.2 大小端介绍 四、浮点数在内存中的存储 ​编辑 4.…...

PyQT(PySide)的上下文菜单策略设置setContextMenuPolicy()

在 Qt 中&#xff0c;QWidget 类提供了几种不同的上下文菜单策略&#xff0c;这些策略通过 Qt::ContextMenuPolicy 枚举类型来定义&#xff0c;用于控制控件&#xff08;如按钮、文本框等&#xff09;在用户右键点击时如何显示上下文菜单。 以下是 Qt::ContextMenuPolicy 枚举中…...

BladeX框架接口请求跨域

前端使用代理请求接口&#xff0c;接口可以正常访问。如果换全路径请求就跨域。 除了后端要配置跨域 还需要修改配置文件对OPTIONS请求的限制...

如何在Apple不再支持的MacOS上安装Homebrew

手头有一台2012年产的Macbook Pro&#xff0c;系统版本停留在了10.15.7&#xff08;2020年9月24日发布的&#xff09;。MacOS 11及后续的版本都无法安装到这台老旧的电脑上。想通过pkg安装Homebrew&#xff0c;发现Homebrew releases里最新的pkg安装包不支持MacOS 10.15.7&…...

本地大模型编程实战(26)用langgraph实现基于SQL数据构建的问答系统(5)

本文将将扩展上一篇文章完成的 langgraph 链&#xff0c;继续使用基于 langgraph 链 &#xff0c;对结构化数据库 SQlite 进行查询的方法。该系统建立以后&#xff0c;我们不需要掌握专业的 SQL 技能&#xff0c;可以用自然语言询问有关数据库中数据的问题并返回答案。主要完善…...

数据结构与算法:滑动窗口

前言 滑动窗口一般主要用于解决子数组或子串问题&#xff0c;这类的题目更看重对题目的分析和转化。 一、原理 在整个数组上&#xff0c;用l和r分别控制窗口的左右边界&#xff0c;r就扩大&#xff0c;l就减小。 当窗口的范围和题目中某个指标间存在单调关系时&#xff0c;…...

江协科技/江科大-51单片机入门教程——P[2-1] 点亮一个LED

本节将向大家介绍如何用 51 单片机去控制开发板上的 LED。开发板上的 LED 位置标注有 “LED 模块”。 第二章要写 3 个程序代码&#xff1a;第一个代码实现点亮开发板上的第一个 LED&#xff1b;第二个代码让第一个 LED 以 1 秒为周期闪烁&#xff1b;第三个代码使 8 个 LED 以…...

leetcode hot 100 41. 缺失的第一个正数

代码 测试用例 测试用例 测试结果 41. 缺失的第一个正数 已解答 困难 相关标签 相关企业 提示 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1&#xf…...

UniApp 使用 u-loadmore 完整步骤

文章目录 一、前期准备1. 安装 uView - UI 二、使用 u-loadmore组件1. 创建页面2. 编写页面代码模板部分&#xff08;loadmore-demo.vue&#xff09;样式部分脚本部分 三、要点补充1. u-loadmore 状态说明2. 数据请求优化3. 性能优化4. 兼容性问题 在 UniApp 开发中&#xff0c…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...