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

自己的网站怎么制作百度收录网站

自己的网站怎么制作,百度收录网站,b站推广网站动漫,网站建设技术招聘1137. 第 N 个泰波那契数 简单 相关标签 premium lock icon 相关企业 提示 泰波那契序列 Tn 定义如下: T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2 给你整数 n,请返回第 n 个泰波那契数 Tn 的值。 示例 1: 输入&am…

1137. 第 N 个泰波那契数

简单
相关标签
premium lock icon
相关企业
提示
泰波那契序列 Tn 定义如下:

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

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

示例 1:

输入:n = 4
输出:4
解释:
T_3 = 0 + 1 + 1 = 2
T_4 = 1 + 1 + 2 = 4
示例 2:

输入:n = 25
输出:1389537

提示:

0 <= n <= 37
答案保证是一个 32 位整数,即 answer <= 2^31 - 1。
在这里插入图片描述

在这里插入图片描述

分析

解题思路
泰波那契数列(Tribonacci)定义:

T₀ = 0,  
T₁ = 1,  
T₂ = 1,  
Tₙ = Tₙ₋₁ + Tₙ₋₂ + Tₙ₋₃  (n ≥ 3)

我们要计算第 n 项 Tₙ。由于 n ≤ 37,直接用动态规划即可在 O(n) 时间内完成,且可以只用 O(1) 的额外空间(滚动变量)。


方法一:迭代 + 滚动变量(空间 O(1))

维护三个变量 a=Tₙ₋₃b=Tₙ₋₂c=Tₙ₋₁,从 i=3 迭代到 n,每次计算 d = a + b + c,然后滚动更新:

// C++ 实现
class Solution {
public:int tribonacci(int n) {if (n == 0) return 0;if (n <= 2) return 1;       // T1 = T2 = 1int a = 0, b = 1, c = 1;    // 分别对应 T0, T1, T2int d = 0;for (int i = 3; i <= n; ++i) {d = a + b + c;  // 计算 T_ia = b;          // 滚动:下轮 a = T_{i-2}b = c;          //      b = T_{i-1}c = d;          //      c = T_i}return c;}
};
# Python 实现
class Solution:def tribonacci(self, n: int) -> int:if n == 0:return 0if n <= 2:return 1a, b, c = 0, 1, 1  # 对应 T0, T1, T2for _ in range(3, n + 1):a, b, c = b, c, a + b + creturn c
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

方法二:递归 + 备忘录(空间 O(n))

虽然递归更直观,但不加缓存会产生大量重复子问题。使用哈希表或数组保存已计算的 Tₖ:

// C++ 实现:递归 + 备忘录
class Solution {vector<int> memo;
public:int tribonacci(int n) {memo.assign(n+1, -1);return dfs(n);}int dfs(int i) {if (i == 0) return 0;if (i <= 2) return 1;if (memo[i] != -1) return memo[i];return memo[i] = dfs(i-1) + dfs(i-2) + dfs(i-3);}
};
# Python 实现:递归 + 备忘录
class Solution:def __init__(self):self.memo = {0: 0, 1: 1, 2: 1}def tribonacci(self, n: int) -> int:if n in self.memo:return self.memo[n]self.memo[n] = (self.tribonacci(n-1)+ self.tribonacci(n-2)+ self.tribonacci(n-3))return self.memo[n]
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)(递归栈 + 备忘录)

对于本题,方法一最为简洁高效,推荐使用滚动变量迭代。

http://www.dtcms.com/wzjs/141379.html

相关文章:

  • 建站员工网站做seo如何赚钱
  • 北京网站建设飞沐软文发布平台哪个好
  • 网站中弹出广告怎么做色盲测试图第六版及答案大全
  • 网站建设如何实现检索功能综合性b2b电子商务平台网站
  • 开发网站网络公司排行周口seo推广
  • 如何进行外贸网站建设医疗器械龙头股
  • 海南百度网站建设浏览器地址栏怎么打开
  • 网站建设就业方向王通seo
  • 武汉网站建设哪家强抖音视频seo霸屏
  • 珠宝网站制作的理念外包seo公司
  • 网站页脚怎么做能好看点百度怎么发布自己的广告
  • 大学网站开发模板免费下载网推公司干什么的
  • 企业做网站哪个最好sem优化技巧
  • 企业网站建设的思路游戏推广赚佣金
  • 网站开发公司分析厦门seo网络推广
  • vs2017做网站上海网站seo快速排名
  • 网络服务通知标题优化怎么做
  • 装饰网站模版怎样把个人介绍放到百度
  • 在西部数码做的企业网站不能与阿里巴巴网站相连接怎样做网站推广啊
  • 微网站需要什么百度我的订单
  • 网站头部优化文字怎么做国际新闻消息
  • 做网上购物网站网页制作html代码
  • 最近军事新闻正规网站优化哪个公司好
  • 做营养的网站sem是什么意思呢
  • 网站建设及外包营销策划推广公司
  • 资源库网站建设的总结怎么在百度上发布自己的信息
  • 系统之家网站怎么做seo智能优化软件
  • 改革开放40周年网站发展建设厦门网站seo哪家好
  • 怎么建立本地网站安卓优化大师官网下载
  • 南山区做网站新媒体口碑营销案例