news 2026/7/17 16:46:44

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

作者头像

张小明

前端开发工程师

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

方法四:自底向上进行迭代

算法

  • 若 N <= 1,则返回 N。
  • 若 N == 2,则返回 fib(2-1) + fib(2-2) = 1。
  • 使用迭代的方法,我们至少需要三个变量存储 fib(N), fib(N-1) 和 fib(N-2)。
  • 预置初始值:
  1. current = 0。
  2. prev1 = 1,代表 fib(N-1)。
  3. prev2 = 1,代表 fib(N-2)
  • 我们从 3 计算到 N;0,1,2对应的斐波那契数是预先计算。
  • 设置 current = fib(N-1) + fib(N-2),因为 current 代表的是当前计算的斐波那契数。
  • 设置 prev2 = fib(N-1)。
  • 设置 prev1 = current。
  • 当我们到达 N+1,将退出循环并返回 current。

Java 实现

class Solution { public int fib(int N) { if (N <= 1) { return N; } if (N == 2) { return 1; } int current = 0; int prev1 = 1; int prev2 = 1; for (int i = 3; i <= N; i++) { current = prev1 + prev2; prev2 = prev1; prev1 = current; } return current; } }

Python 实现

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

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

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

作者头像 李华
网站建设 2026/7/16 3:47:24

终极指南:如何高效利用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/7/17 8:14:14

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

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

作者头像 李华
网站建设 2026/7/15 15:28:23

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

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

作者头像 李华
网站建设 2026/7/17 2:32:18

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

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

作者头像 李华
网站建设 2026/7/17 14:41:55

qt串口助手

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

作者头像 李华