概述
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M 热度指数:744447
本题知识点: 递归
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
示例1
输入
1
返回值
1
示例2
输入
4
返回值
5
思路:就跟斐波那契数列一个思路,不了解的点击:JavaScript实现斐波那契数列
递归函数的出口就是number===0或1或2时退出循环
function jumpFloor(number){
if(number <= 0 ) return 0
else if(number === 1) return 1
else if(number === 2) return 2
return jumpFloor(number-1) + jumpFloor(number-2)
}
思路:通过数字记忆来反复叠加,实现函数递归效果
注意要从两个往复相加的数必须一个是1,开始就从1开始循环,否则一直都是0
function jumpFloor(number){
if(number <= 0 ) return 0
else if(number === 1) return 1
else if(number === 2) return 2
let res = 0, left = 0 ,right = 1
for(let i = 1 ; i <= number ; i++){
res = left + right
left = right
right = res
}
return res
}
最后
以上就是直率台灯为你收集整理的剑指OfferJZ8 跳台阶(JavaScript:递归,非递归)的全部内容,希望文章能够帮你解决剑指OfferJZ8 跳台阶(JavaScript:递归,非递归)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复