题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。
求总共有多少总跳法,并分析算法的时间复杂度。
这道题最近经常出现,包括MicroStrategy等比较重视算法的公司
都曾先后选用过个这道题作为面试题或者笔试题。
解题思路:
经典的青蛙跳台阶.....第一次看到果断被干掉了....后来在网上看了一下..这尼玛就是斐波那契数列....疯了...
假设f(n)是到第n级台阶的跳数的总数
青蛙跳到第n阶台阶有两种方法,从第n-2级台阶跳2级和从第n-1级台阶跳1级..
这样就转化成求青蛙到达n-2级台阶的跳数和到达第n-2级台阶的跳数...
得到递推公式:
f(x) = f(x-1) + f(x -2);
斐波那契数列....
public class Q27 {
public static void main(String[] args) {
int stage = 5;
System.out.println(getStep(stage));
}
public static int getStep(int stage)
{
if(stage == 1 || stage == 0)
return 1;
return getStep(stage-1) + getStep(stage - 2);
}
}
本文详细解析了一个经典的算法问题——青蛙跳台阶问题。通过递归方法实现,利用斐波那契数列解决青蛙如何到达指定台阶的问题,并给出了具体的Java代码实现。
&spm=1001.2101.3001.5002&articleId=8689290&d=1&t=3&u=6e081a719e384d1f944ea3c5beeb30f0)
1万+

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



