LeetCode 1137. 第 N 个泰波那契数 N-th T

作者: 1江春水 | 来源:发表于2019-07-31 12:02 被阅读1次

    【题目描述】
    泰波那契序列 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。
    

    【思路】
    1、斐波那契数列
    2、可以使用递归,也可以迭代,递归太慢了
    3、时间复杂度O(n)
    4、空间复杂度O(1)

    Swift代码实现:

    func tribonacci(_ n: Int) -> Int {
        if n == 0 { return 0 }
        if n == 1 { return 1 }
        if n == 2 { return 1 }
        var a = 0
        var b = 1
        var c = 1
        var count = n-3
        var sum = 0
        while count >= 0 {
            sum = a + b + c
            a = b
            b = c
            c = sum
            count-=1
        }
        return sum
    }
    

    相关文章

      网友评论

        本文标题:LeetCode 1137. 第 N 个泰波那契数 N-th T

        本文链接:https://www.haomeiwen.com/subject/qcpzrctx.html