news 2026/3/27 6:00:02

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

作者头像

张小明

前端开发工程师

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/3/20 20:18:12

DsHidMini完整指南:让PS3手柄在Windows系统重获新生

DsHidMini是专为索尼PS3 DualShock 3手柄设计的终极Windows驱动程序解决方案。通过模拟标准HID设备&#xff0c;这款驱动让您的PS3手柄能够完美工作在Windows 10/11系统上&#xff0c;无论是通过USB有线连接还是蓝牙无线连接&#xff0c;都能获得出色的游戏体验。 【免费下载链…

作者头像 李华
网站建设 2026/3/26 14:00:16

终极指南:如何高效利用KITTI-360数据集进行自动驾驶研究

终极指南&#xff1a;如何高效利用KITTI-360数据集进行自动驾驶研究 【免费下载链接】kitti360Scripts This repository contains utility scripts for the KITTI-360 dataset. 项目地址: https://gitcode.com/gh_mirrors/ki/kitti360Scripts KITTI-360数据集是自动驾驶…

作者头像 李华
网站建设 2026/3/21 0:10:33

MediaMux视频处理工具:从零基础到精通的全方位指南

MediaMux视频处理工具&#xff1a;从零基础到精通的全方位指南 【免费下载链接】MediaMux A windows tool for converting/muxing/split/concat videos. 项目地址: https://gitcode.com/gh_mirrors/me/MediaMux 在数字化时代&#xff0c;视频内容已成为信息传播的主要载…

作者头像 李华
网站建设 2026/3/25 8:14:13

为何低压断路器的进出线方向不能反接?

低压断路器的进出线方向不能接反&#xff0c;是因为断路器动触头侧、静触头侧的操作机构介电性能不同&#xff0c;断路器动、静出头上的电弧弧根移动方式不同导致的。如果采用下部进线&#xff0c;则断路器可能需要采取降容措施&#xff0c;也即实际运行电流会小于额定电流&…

作者头像 李华
网站建设 2026/3/23 15:51:45

EmotiVoice开发者问答精选:高频问题官方回应

EmotiVoice开发者问答精选&#xff1a;高频问题官方回应 在虚拟主播直播时突然“变脸”发怒&#xff0c;或是让失语者用自己年轻时的声音重新说话——这些曾属于科幻的情节&#xff0c;如今正随着语音合成技术的突破逐渐变为现实。而在这场变革中&#xff0c;EmotiVoice 成为了…

作者头像 李华
网站建设 2026/3/24 8:42:11

qt串口助手

mainWindows.c构造函数/*---------- 1. 串口对象初始化 ----------*/serialPort new QSerialPort(this); // 创建串口对象&#xff0c;指定父对象自动回收/* 连接串口的“readyRead”信号到我们的自定义槽函数 */connect(serialPort, &QSerialPort::readyRead,this,&a…

作者头像 李华