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

第N个泰波那契数

泰波那契序列 Tn 定义如下: 

T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2

给你整数 n,请返回第 n 个泰波那契数 Tn 的值

动态规划(dp数组):

class Solution {
public:int tribonacci(int n) {// 创建dp数组,大小为n+1,用于存储泰波那契数列的前n项vector<int> dp(n + 1);// 边界条件1:当n=0时,直接返回0(泰波那契数列定义)if (n == 0)return 0;// 边界条件2:当n=1或n=2时,直接返回1(泰波那契数列定义)if (n < 3)return 1;// 初始化dp数组的前3项(泰波那契数列的起始值)dp[0] = 0;  // 第0项为0dp[1] = 1;  // 第1项为1dp[2] = 1;  // 第2项为1// 从第3项开始迭代计算,直到第n项for (int i = 3; i < n + 1; i++) {// 泰波那契数列定义:第i项 = 前3项之和dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];}// 返回第n项的结果return dp[n];}
};

优化:(空间O(n)->O(1)):

class Solution {
public:int tribonacci(int n) {// 边界条件1:当n=0时,直接返回0(泰波那契数列定义)if (n == 0)return 0;// 边界条件2:当n=1或n=2时,直接返回1(泰波那契数列定义)if (n < 3)return 1;// 初始化变量,存储最近3项的结果:// a 表示第 i-3 项(初始为 trib(0) = 0)// b 表示第 i-2 项(初始为 trib(1) = 1)// c 表示第 i-1 项(初始为 trib(2) = 1)int a = 0, b = 1, c = 1;// 从第3项开始迭代计算,直到第n项for (int i = 3; i < n + 1; i++) {// 计算当前项:第i项 = 前3项之和(trib(i) = trib(i-1) + trib(i-2) + trib(i-3))int d = a + b + c;// 更新变量,为下一轮计算做准备:// a 移动到原来的 b(即 i-2 项变为 i-3 项)a = b;// b 移动到原来的 c(即 i-1 项变为 i-2 项)b = c;// c 移动到当前计算的 d(即当前项变为 i-1 项)c = d;}// 循环结束后,c 中存储的就是第n项的结果return c;}
};

 

http://www.xdnf.cn/news/1238131.html

相关文章:

  • Spring lookup-method实现原理深度解析
  • e2studio开发RA4M2(6)----GPIO外部中断(IRQ)配置
  • 信创及一次ORACLE到OB的信创迁移
  • 图像、视频、音频多模态大模型中长上下文token压缩方法综述
  • 使用 Vuepress + GitHub Pages 搭建项目文档
  • 【Bluetooth】【Transport层篇】第四章 基于基础UART的蓝牙硬件发送协议 UART H4 Transport详解
  • Docker 国内可用镜像
  • 关于 xrdp远程桌面报错“Error connecting to sesman on 127.0.0.1:3350“的解决方法
  • [自动化Adapt] 录制引擎
  • 计算机视觉CS231n学习(2)
  • 第六章第三节 TIM 输出比较
  • Java 大视界 -- Java 大数据在智能教育学习资源个性化推荐与学习路径动态调整中的深度应用(378)
  • ARPO:让LLM智能体更高效探索
  • 三角洲行动ACE反作弊VT-d报错?CPU虚拟化如何开启!
  • 嵌入式学习-(李宏毅)机器学习(5)-day32
  • 苍穹外卖项目学习——day1(项目概述、环境搭建)
  • 音视频学习(五十):音频无损压缩
  • 力扣-437.路径总和III
  • 深度学习中的模型知识蒸馏
  • 关于Web前端安全之XSS攻击防御增强方法
  • 广东省省考备考(第六十五天8.3)——判断推理:图形推理(数量规律题目总结)
  • C的运算符与表达式
  • C的数据类型与变量
  • lumerical——锥形波导偏振转换
  • 《前端无障碍设计的深层逻辑与实践路径》
  • JavaWeb学习------SpringCloud入门
  • Web 开发 11
  • JavaScript:编程世界中的“语盲”现象
  • CCF-GESP 等级考试 2025年6月认证C++一级真题解析
  • 推荐系统学习笔记(九)曝光过滤 Bloom Filter