天天看點

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》)