70、爬樓梯

假設(shè)你正在爬樓梯。需要 n 階你才能到達(dá)樓頂。
每次你可以爬 1 或 2 個(gè)臺(tái)階。你有多少種不同的方法可以爬到樓頂呢?
注意:給定 n 是一個(gè)正整數(shù)。
示例 1:
輸入: 2
輸出: 2
解釋: 有兩種方法可以爬到樓頂。
1 階 + 1 階
2 階
示例 2:
輸入: 3
輸出: 3
解釋: 有三種方法可以爬到樓頂。
1 階 + 1 階 + 1 階
1 階 + 2 階
2 階 + 1 階

動(dòng)態(tài)規(guī)劃解決,從第n個(gè)點(diǎn)到第n+1個(gè)點(diǎn)時(shí),可以在第n個(gè)點(diǎn)的基礎(chǔ)上向前一步,也可以在第n-1個(gè)點(diǎn)上向前2步,所以:
f(n+1) = f(n)+f(n-1)

public static int climbStairs(int n) {
        if(0==n)
            return 0;
        if(1==n)
            return 1;
        if(2==n)
            return 2;
        int res[] = new int[n+1];
        res[1] = 1;
        res[2] = 2;
        for(int i = 3;i<=n;i++) {
            res[i] = res[i-1]+res[i-2]; 
        }   
        return res[n];
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容