--算法恩仇录--实战篇--力扣(LeetCode)--070-爬楼梯--
--算法恩仇录--实战篇--力扣(LeetCode)--070-爬楼梯--
这道题主要是思路得对。
思路
假如你要走5个阶梯,你的第一步有两种选择。
- 走一步,还剩4个阶梯
- 走两步,还剩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:
思路是对的没有问题,效率低下问题在于,斐波那契是有公式的,而我是使用遍历操作,难免效率较低。
离大侠再近一步!