zoukankan      html  css  js  c++  java
  • [Swift]LeetCode1137. 第 N 个泰波那契数 | N-th Tribonacci Number

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/11258425.html 
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    The Tribonacci sequence Tn is defined as follows: 

    T0 = 0, T1 = 1, T2 = 1, and Tn+3 = Tn + Tn+1 + Tn+2 for n >= 0.

    Given n, return the value of Tn. 

    Example 1:

    Input: n = 4
    Output: 4
    Explanation:
    T_3 = 0 + 1 + 1 = 2
    T_4 = 1 + 1 + 2 = 4
    

    Example 2:

    Input: n = 25
    Output: 1389537 

    Constraints:

    • 0 <= n <= 37
    • The answer is guaranteed to fit within a 32-bit integer, ie. answer <= 2^31 - 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

    0ms
     1 class Solution {
     2     func tribonacci(_ n: Int) -> Int {
     3         var numbers = Array<Int>(repeating: 0, count: 38)
     4         numbers[1] = 1
     5         numbers[2] = 1
     6         for i in 3..<38 {
     7             numbers[i] = numbers[i-1] + numbers[i-2] + numbers[i-3]
     8         }
     9         return numbers[n]
    10     }
    11 }

    4ms

     1 class Solution {
     2     func tribonacci(_ n: Int) -> Int {
     3         if n == 0 {
     4             return 0
     5         } else if n == 1 {
     6             return 1
     7         } else if n == 2 {
     8             return 1
     9         }
    10         var a = 0
    11         var b = 1
    12         var c = 1
    13         var d = 0
    14         for i in 3...n {
    15             d = a + b + c
    16             a = b
    17             b = c
    18             c = d
    19         }
    20         return d
    21     }
    22 }

    8ms

     1 class Solution {
     2     func tribonacci(_ n: Int) -> Int {
     3         var tribs = [Int](repeating: 0, count: max(n + 1, 3))
     4         tribs[0] = 0
     5         tribs[1] = 1
     6         tribs[2] = 1
     7         guard n >= 3 else {
     8             return tribs[n]
     9         }
    10         for i in 3...n {
    11             tribs[i] = tribs[i - 1] + tribs[i - 2] + tribs[i - 3] 
    12         }
    13         return tribs[n]
    14     }
    15 }

    Runtime: 12 ms

    Memory Usage: 20.8 MB
     1 class Solution {
     2     func tribonacci(_ n: Int) -> Int {
     3         var first:Int = 0
     4         var second:Int = 1
     5         var third:Int = 1
     6         // here first,second and third are the previous three elements
     7         switch n
     8         {
     9             case 0:
    10             return 0
    11             case 1,2:
    12             return 1
    13             default:
    14             // if n=0 or n=1 then the tribonacci number is n itself 
    15             // else for loop will be executed
    16             for i in 3...n
    17             {
    18                 var newElement:Int = first + second + third
    19                 first=second
    20                 second=third
    21                 third=newElement
    22             }
    23         }
    24         return third        
    25     }
    26 }
  • 相关阅读:
    Linux的公平调度(CFS)原理
    linux内核分析——CFS(完全公平调度算法)
    Linux内核——进程管理之CFS调度器(基于版本4.x)
    QT中的qDebug()
    fork()函数(转)
    Linux下的进程1——进程概念,进程切换,上下文切换,虚拟地址空间
    Web Services 平台元素
    为什么使用 Web Services?
    WebServices简介
    CSS3(14)弹性盒子
  • 原文地址:https://www.cnblogs.com/strengthen/p/11258425.html
Copyright © 2011-2022 走看看