--算法恩仇录--实战篇--力扣(LeetCode)--070-爬楼梯--

--算法恩仇录--实战篇--力扣(LeetCode)--070-爬楼梯--

这道题主要是思路得对。

思路

假如你要走5个阶梯,你的第一步有两种选择。

  1. 走一步,还剩4个阶梯
  2. 走两步,还剩3个阶梯
    那么这就变成了 3 个阶梯加上 4个阶梯的情况。
    答案就出来了~
    f[n] = f[n-1] + f[n-2]

JS代码:

/**
 * @param {number} n
 * @return {number}
 */
let fibo = [];
function getFeibo(n) {
	fibo[0] = 1;
	fibo[1] = 1;
	for(let i = 2; i<=n; i++){
		fibo[i] = fibo[i - 1] + fibo[i - 2];
	}
	return fibo[n];
}

var climbStairs = function(n) {
    return getFeibo(n);
};


结果

执行用时:84 ms, 在所有 JavaScript 提交中击败了37.76%的用户

内存消耗:37.5 MB, 在所有 JavaScript 提交中击败了5.06%的用户

PS:

思路是对的没有问题,效率低下问题在于,斐波那契是有公式的,而我是使用遍历操作,难免效率较低。

posted @ 2020-09-18 10:58  小虾米在code江湖  阅读(115)  评论(0编辑  收藏  举报