算法简单题,吾辈重拳出击 - 第 N 个泰波那契数

简介: 听说过斐波那契数列,那你听说过泰波那契数列吗?

image.png

听说过斐波那契数列,那你听说过泰波那契数列吗?

上题!


泰波那契序列 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


第一反应



斐波那契是 T(n) = T(n-1) + T(n-2)

泰波那契是 T(n) = T(n-1) + T(n-2) + T(n-3)

那求和也简单鸭,第一个数是 0,第二个数是 1,第三个数是 2


var tribonacci = function(n) {
    let x = 0
    let y = 1
    let z = 1
    let res = 0
    if(n<2) return n
    if(n==2) return 1
    for(let i=3;i<=n;i++){
        res = x+y+z
        x = y
        y = z
        z = res
    }
    return res
};


第二反应



递归求解


var tribonacci = function(n) {
    let x = 0
    let y = 1
    let z = 1
    if(n<2) return n
    if(n==2) return 1
    let res =  tribonacci(n-1) + tribonacci(n-2) + tribonacci(n-3)
    return res
};

image.png


运行时间超出内存,递归时间复杂度 O(3n)


小结:


本题关键在于认识下泰波那契数,有概念即可~~

是不是对于斐波那契、爬楼梯这样的题目得心应手了呢?(●'◡'●)


相关文章
|
存储 前端开发 JavaScript
第三十章 React的路由基本使用
第三十章 React的路由基本使用
164 0
|
存储 关系型数据库 MySQL
MySQL InnoDB存储引擎的优点有哪些?
上述提到的特性和优势使得InnoDB引擎非常适合那些要求高可靠性、高性能和事务支持的场景。在使用MySQL进行数据管理时,InnoDB通常是优先考虑的存储引擎选项。
474 0
|
消息中间件 存储 大数据
一文读懂 kafka 的事务机制 1
一文读懂 kafka 的事务机制
|
数据采集 DataWorks 监控
DataWorks产品使用合集之如何修改调度时区的地域
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
131 1
|
JavaScript 前端开发 Java
44【Java生态前后端】开发web应用使用到的技术 & Vue框架+Java开发Web应用的步骤
使用Vue框架进行前端开发,实现应用的交互和界面展示。
510 1
获取线程号和杀不死的NSThread线程
获取线程号和杀不死的NSThread线程
128 0
|
前端开发 JavaScript 安全
SpringBoot+Vue豆宝社区前后端分离项目手把手实战系列教程05---每日一句功能实现
SpringBoot+Vue豆宝社区前后端分离项目手把手实战系列教程05---每日一句功能实现
287 0
|
Python
【Python基础】模块的概念、模块的导入和下载第三方模块
【Python基础】模块的概念、模块的导入和下载第三方模块
179 0
|
人工智能 算法 索引
六六力扣刷题贪心算法之K次取反后最大化的数组和
六六力扣刷题贪心算法之K次取反后最大化的数组和
127 0
|
运维 Linux 开发工具
跟着老万学linux运维-vi编辑器中的大小写转换技巧
跟着老万学linux运维-vi编辑器中的大小写转换技巧
782 0
跟着老万学linux运维-vi编辑器中的大小写转换技巧