Tail Recursion Fibonacci

前端 未结 4 1617
清歌不尽
清歌不尽 2020-12-28 18:53

How do I implement a recursive Fibonacci function with no loops running in O(n)?

4条回答
  •  独厮守ぢ
    2020-12-28 19:44

    In case someone is looking for a JavaScript solution:

    function _fib(n, left, right) {
      switch (n) {
        case 0: return 0
        case 1: return right
        default: return _fib(n - 1, right, left + right)
      }
    }
    
    function fib(n) {
      return _fib(n, 0, 1)
    }
    

    That runs in O(n) time and O(1) space with tail call optimization.

提交回复
热议问题