- 题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
- 思路
一个台阶:f(1)=1
二个台阶:f(2)=2
三个台阶:f(3)=f(1)+f(2)=3
四个台阶:f(4)=f(2)+f(3)=5
五个台阶:f(5)=f(3)+f(4)=8
......
n个台阶:f(n)=f(n-1)+f(n-2)
- 代码1
public class Solution {
public int JumpFloor(int target) {
if(target<=0)
return 0;
if(target==1)
return 1;
if(target==2)
return 2;
int one=1,two=2,three=0;
for(int i=3;i<=target;i++){
three=one+two;
one=two;
two=three;
}
return three;
}
}
- 代码2
//递归
class Solution {
public:
int jumpFloor(int number) {
if(number <= 0)
return 0;
else if(number == 1)
return 1;
else if(number == 2)
return 2;
else
return jumpFloor(number-1) + jumpFloor(number-2);
}
};
本文详细解析了青蛙跳台阶问题,这是一个经典的动态规划问题。通过递归和迭代两种方法,展示了如何计算青蛙跳上n级台阶的不同跳法总数。代码示例使用了Java语言。
220

被折叠的 条评论
为什么被折叠?



