news 2026/2/24 5:46:33

浅谈:算法中的斐波那契数(三)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
浅谈:算法中的斐波那契数(三)

方法二:记忆化自底向上的方法

自底向上通过迭代计算斐波那契数的子问题并存储已计算的值,通过已计算的值进行计算。减少递归带来的重复计算。

算法

  • 如果 N 小于等于 1,则返回 N。
  • 迭代 N,将计算出的答案存储在数组中。
  • 使用数组前面的两个斐波那契数计算当前的斐波那契数。
  • 知道我们计算到 N,则返回它的斐波那契数。

Java 实现

class Solution { public int fib(int N) { if (N <= 1) { return N; } return memoize(N); } public int memoize(int N) { int[] cache = new int[N + 1]; cache[1] = 1; for (int i = 2; i <= N; i++) { cache[i] = cache[i-1] + cache[i-2]; } return cache[N]; } }

Python 实现

class Solution: def fib(self, N: int) -> int: if N <= 1: return N return self.memoize(N) def memoize(self, N: int) -> {}: cache = {0: 0, 1: 1} # Since range is exclusive and we want to include N, we need to put N+1. for i in range(2, N+1): cache[i] = cache[i-1] + cache[i-2] return cache[N]
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/23 21:52:25

37、Unix系统中的进程管理与调度

Unix系统中的进程管理与调度 1. 进程会计(Process Accounting) Unix系统支持进程会计功能,但为了减轻管理日志文件的负担,该功能通常会被禁用。当启用此功能后,每个进程完成时,内核会将一个紧凑的二进制记录写入与系统相关的会计文件,如 /var/adm/pacct 或 /var/ac…

作者头像 李华
网站建设 2026/2/20 19:54:19

拖拽式运动控制画板:工控行业图形化、可二次开发编程框架

拖拽流程式运动控制画板 工控行业&#xff0c;图形化&#xff0c;可视化控件编程框架&#xff0c;可进行二次开发&#xff0c;多页签文档&#xff0c;可停靠布局&#xff0c;拖拽画板&#xff0c;控件框架&#xff0c; 支持如下 可定制开发价格另议 可视化逻辑编辑区。 多页签文…

作者头像 李华
网站建设 2026/2/20 21:34:21

40、深入探索Shell:下载、版本与初始化全解析

深入探索Shell:下载、版本与初始化全解析 1. 下载信息 在构建特定的Shell环境时,首先需要获取相应的源代码。以下为你详细介绍bash和ksh93的下载与构建过程。 1.1 bash bash可从自由软件基金会GNU项目的FTP服务器获取。截至目前,当前版本为3.0。你可以使用 wget 命令来…

作者头像 李华
网站建设 2026/2/23 6:43:32

有效应力计算

煤矿开挖区的三维渗流仿真 煤矿开挖区模型。 计算了渗流速度场以及结构的应力场煤矿开挖区的三维渗流仿真是个挺有意思的活。咱们今天聊点硬核的&#xff0c;直接上代码。先说说模型构建&#xff0c;这玩意儿得考虑煤层裂隙网络。用Python的pyvista库处理地质数据挺顺手&#x…

作者头像 李华
网站建设 2026/2/20 16:22:00

RAG技术全解析:让大模型轻松掌握你的业务知识

RAG技术通过检索业务数据增强大模型生成能力&#xff0c;解决模型不了解特定业务的问题。核心流程包括&#xff1a;用户提问→检索相关资料→增强提示词→生成回复。关键技术是将文本转换为向量并存储于向量数据库中&#xff0c;实现语义匹配而非简单文本匹配。文章还介绍了索引…

作者头像 李华