天天看点

JAVA实现变态跳台阶问题(《剑指offer》)

最近在刷《剑指offer》里的编程题,但是网上关于《剑指offer》的解答多半是C或者C++的,而且官方(作者)也是在用C++进行讲解,这里自己用java写了一些题目的解答代码(当然也有部分是借鉴了网上别人的解答的,出处未注明敬请之处请指出,侵删),希望能对大家的学习有所帮助。

上一篇文章讲了跳台阶问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。(http://blog.csdn.net/qq_15062527/article/details/48846627)

这个其实就是一个斐波那契数列问题,现在我们把这个问题提升一下难度:

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

牛客网题目框架截图:

JAVA实现变态跳台阶问题(《剑指offer》)

解答:

public class Solution {
    public int JumpFloorII(int target) {
        int m=0,i;
        if(target<0)m=0;
           else if(target==0)m=1;
                  else
                      for(i=target-1;i>=0;i--)
                           m+=JumpFloorII(i);
               
         return m;
    }
}
           

牛客网编译通过截图:

JAVA实现变态跳台阶问题(《剑指offer》)