LeetCode不規則なブラシのタイトル--Climbing階段

階段を上る

あなたは階段のケースを登っています。それはとりnはトップに到達するための手順を。

たびに1つのまたは2のいずれかのステップを登ることができます。あなたが一番上に登ることができますどのように多くの異なる方法で?

注:与えられたnは正の整数になります。

例1:

Input: 2
Output:  2
Explanation:  There are two ways to climb to the top.

1. 1 step + 1 step
2. 2 steps

例2:

Input: 3
Output:  3
Explanation:  There are three ways to climb to the top.

1. 1 step + 1 step + 1 step
2. 1 step + 2 steps
3. 2 steps + 1 step

宛先に到達するために貧しい二つのステップ:最後のステップ1は2ではないので、この問題は二つの問題に分けることができますので、私たちは、FN = FN-1 + FN-2、実際にフィボナッチの問題に似ていますこの問題を見て、見ることができますそして先より多くのステップの問題、あなたは分解をダウンし続けることができます。

class Solution {
    public int climbStairs(int n) {
        if(n==0||n==1||n==2){
        return n;
        }
        int oneStep=1;
        int twoStep=2;
        int sumStep=0;
        for(int i=2;i<n;i++){
            sumStep=oneStep+twoStep;
            oneStep=twoStep;
            twoStep=sumStep;
        }
        return sumStep;
    }
}
173元記事公開 ウォンの賞賛110 ビューに10万+を

おすすめ

転載: blog.csdn.net/qq_35564813/article/details/104737084