news 2026/6/23 18:55:56

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

作者头像

张小明

前端开发工程师

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

方法三:记忆化自顶向下的方法

我们先计算存储子问题的答案,然后利用子问题的答案计算当前斐波那契数的答案。我们将递归计算,但是通过记忆化不重复计算已计算的值。

算法

  • 如果 N <= 1,则返回 N。
  • 调用和返回 memoize(N)。
  • 如果 N 对应的斐波那契数存在,则返回。
  • 否则将计算 N 对应的斐波那契数为 memoize(N-1) + memoize(N-2)。

Java 实现

class Solution { private Integer[] cache = new Integer[31]; public int fib(int N) { if (N <= 1) { return N; } cache[0] = 0; cache[1] = 1; return memoize(N); } public int memoize(int N) { if (cache[N] != null) { return cache[N]; } cache[N] = memoize(N-1) + memoize(N-2); return memoize(N); } }

Python 实现

class Solution: def fib(self, N: int) -> int: if N <= 1: return N self.cache = {0: 0, 1: 1} return self.memoize(N) def memoize(self, N: int) -> {}: if N in self.cache.keys(): return self.cache[N] self.cache[N] = self.memoize(N-1) + self.memoize(N-2) return self.memoize(N)

复杂度分析

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 4:03:35

一项基于粒子图像测速(PIV)速度场反演的压力场重构技术

1 技术背景压力场是描述流场中各空间点压力大小的标量分布函数&#xff0c;其空间变化&#xff08;压力梯度&#xff09;反映流体微团在分子热运动与宏观流动相互作用下的动量传递特性。无论是飞行器的气动升力、船体结构的载荷分析&#xff0c;还是心脏瓣膜的血流冲击&#xf…

作者头像 李华
网站建设 2026/6/22 14:49:30

NetBox拓扑视图插件:让网络管理更直观的5个实用技巧

NetBox拓扑视图插件&#xff1a;让网络管理更直观的5个实用技巧 【免费下载链接】netbox-topology-views A netbox plugin that draws topology views 项目地址: https://gitcode.com/gh_mirrors/ne/netbox-topology-views NetBox拓扑视图插件是一个功能强大的NetBox扩…

作者头像 李华
网站建设 2026/6/23 13:38:47

EmotiVoice在教育领域的应用探索:让电子教材‘开口讲课’

EmotiVoice在教育领域的应用探索&#xff1a;让电子教材“开口讲课”教育的听觉革命&#xff1a;当课本开始“说话” 在偏远山区的一间教室里&#xff0c;孩子们围坐在一台老旧平板前。屏幕上是一页静态的物理教材&#xff0c;讲述着牛顿第一定律。老师因病请假&#xff0c;课堂…

作者头像 李华
网站建设 2026/6/22 21:28:37

Blender建筑生成插件building_tools:3步创建专业建筑模型

Blender建筑生成插件building_tools&#xff1a;3步创建专业建筑模型 【免费下载链接】building_tools Building generation addon for blender 项目地址: https://gitcode.com/gh_mirrors/bu/building_tools 想要在Blender中快速生成精美建筑模型吗&#xff1f;Blender…

作者头像 李华