💛题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
🧡解题思路:
- 这道题是一道典型的动态规划解决的问题,与7.斐波那契数列的解法几乎一模一样,对于斐波那切数列我们需要知道其第0位为0,第一位为1,而这道题为了后序的方便计算其第0位为1,第1位为1
- 解题的思路就是如果我们要跳上第n个台阶,我们可以从第n-1个跳上去也可以从第n-2个跳上去,所以最终要跳上第n个台阶我们可以,f(n) = f(n-1) + f(n-2),也就是将可以跳到第n-1阶台阶的方法加上可以跳到第n-2阶台阶的方法
- 我们也可以用两个指针来替换数组
💚解题代码:
🧡💛💚💙
function jumpFloor(number)
{
// write code here
const res = [1,1]; // 索引是对应的台阶数
for(let i = 2;i <= number;i++) {
res[i] = res[i-1] + res[i-2];
}
return res[res.length - 1];
}