1. 程式人生 > >用兩種方法(遞歸和DP)實現了青蛙跳臺階

用兩種方法(遞歸和DP)實現了青蛙跳臺階

col rac color 題目 方法 pan ret 提高 page

做了這道題目:

https://www.nowcoder.net/practice/8c82a5b80378478f9484d87d1c5f12a4?tpId=13&tqId=11161&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

題目本身比較簡單,先用的遞歸來做的:

int jumpFloor2(int number) {
        if (number < 0) return 0;
        if (number < 2) return
1; return jumpFloor(number-1) + jumpFloor(number-2); }

耗時如下:

技術分享圖片

然後用的DP做的:

int jumpFloor2(int number) {
        if (number < 0) return 0;
        if (number < 2) return 1;
        int jump2 = 1;
        int jump1 = 1;
        for (int i=2; i<=number; i++) {
            int tmp = jump2 + jump1;
            jump2 
= jump1; jump1 = tmp; } return jump1; }

耗時如下:

技術分享圖片

的確提高了很多倍啊!

用兩種方法(遞歸和DP)實現了青蛙跳臺階