跳臺階

題目描述

一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。

解法一:(遞歸, 626ms)

class Solution {
public:
    int jumpFloor(int number) {
        if(number <= 0) {
            return -1;
        }else if(number == 1) {
            return 1;
        }else if(number == 2) {
            return 2;
        }else {
            return jumpFloor(number - 1) + jumpFloor(number- 2);
        }
    }
};

解法二:(循環, 3ms)

class Solution {
public:
    int jumpFloor(int number) {
        if(number <= 0) {
            return -1;
        }else if(number == 1) {
            return 1;
        }else if(number == 2) {
            return 2;
        }
        
        int sumStep = 0, sumBackStep2 = 1, sumBackStep1 = 2;
        for(int i = 3; i <= number; i++) {
            sumStep = sumBackStep2 + sumBackStep1;
            sumBackStep2 = sumBackStep1;
            sumBackStep1 = sumStep;
        }
        return sumStep;
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章