概述
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
分析:
*当有n个台阶时,假设有f(n)种走法。
*青蛙最后一步跨1个台阶或者跨2个台阶。
*当最后一步跨1个台阶时即之前有n-1个台阶,n-1个台阶有f(n-1)种走法;当最后一步跨2个台阶时即之前有n-2个台阶,n-2个台阶有f(n-2 )种走法。
*n个台阶的走法等于前两种情况的走法之和,即f(n)=f(n-1)+f(n-2)。
*斐波那契数列
思路一:递推
public class Solution {
public int JumpFloor(int target) {
if (target <= 1) return 1;
int [] sum = new int[target + 1];
sum[0] = 1;
sum[1] = 1;
sum[2] = 2;
if (target >= 3)
{
for (int i = 3; i <= target; i++)
sum[i] = sum[i -1] + sum[i - 2];
}
return sum[target];
}
}
public class Solution {
public int JumpFloor(int target) {
if (target <= 1)
return 1;
else
return JumpFloor(target - 1) + JumpFloor(target - 2);
}
}
最后
以上就是儒雅茉莉为你收集整理的跳台阶(递归 循环)的全部内容,希望文章能够帮你解决跳台阶(递归 循环)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复