[509] 斐波那契数

55 阅读1分钟
/*
 * @lc app=leetcode.cn id=509 lang=javascript
 *
 * [509] 斐波那契数
 */

// @lc code=start
/**
 * @param {number} n
 * @return {number}
 */
var fib = function (n) {
  if (n <= 1) return n
  const cache = []
  cache[0] = 0
  cache[1] = 1
  //递归写法,先判断数组里面有没有,没有就去找该值的前面两个的值相加
  // function memoize(number) {
  //   if (cache[number] !== undefined) {
  //     return cache[number]
  //   }
  //   cache[number] = memoize(number - 1) + memoize(number - 2)
  //   return cache[number]
  // }
  // const result = memoize(n)
  
  // for循环写法是直接算到要求的值的位置的值
  for (let i = 2; i <= n; i++) {
    cache[i] = cache[i - 1] + cache[i - 2]
  }

  return cache[n]
}
// @lc code=end