T8-ジャンプステップの問題

タイトル説明

カエルは、クラス1レベルにジャンプすることができ、あなたはまた、レベル2に飛び乗っすることができます。カエルはどのように多くのジャンプ(別の計算異なる結果の順序)は、n級レベルの合計を求めて飛び込みました。

問題解決のためのアイデア

数学的順列と組み合わせの問題、分析するのは簡単です: f n = f n 1 + f n 2 F(N)= F(N-1)+ F(N-2)
その後、ステップの種類がジャンプする方法を多く知っているのnジャンプするには:N-1を階段からジャンプのnレベル、n個のステップに階段からグレード2のn-2をスキップするために、再帰的な関係が出てきました

ソース

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

同様に、再帰はの形で循環に最高の文言(フィボナッチ数)ではありません。

class Solution {
public:
    int jumpFloor(int number) {
        if(number==0)
        {return 0;}
        if(number==1)
        {return 1;}
        if(number==2)
        {return 2;}
        int a = 1, b = 2, c = 0;
        for (int i = 3; i <= number; i++) {
            c = a + b;
            a = b;
            b = c;
        }
        return c;
    }
};

改善されたタイトル

カエルは、クラス1レベルにジャンプすることができます。また、レベル2に飛び乗っすることができます...... nはまた、ステージの上にジャンプすることができます。カエルはどのように多くのジャンプのn級レベルの合計を求めて飛び込みました。

問題解決のためのアイデア

今、すべてのカエルは明らかに望ましくない、再帰的な関係を見つけるために、通常のシンプルによると、変換に、このニーズ考え方を、任意のnステップをジャンプすることができます。
私たちは、最終的な結果は、我々の議論の焦点となっているので、どのように多くの、カエルは階段を使ってジャンプする方法に関係なく、半分はn個のステップで異なる足場を持っていることを知っています。
カエルは、自由にジャンプすることができ、どのように各ステップの背後の前方にジャンプすると、すべての最終結果であってもよいです。各ステップの分析、及び両方の場合において、脱落しない、N-ステップ、対応もあります 2 n 1 2 ^ {N-1} の場合。

ソース

class Solution {
public:
    int jumpFloorII(int number) {
        if(number==0)
        {return 0;}
        if(number==1)
        {return 1;}
        
        int a=1,b=0;
        for(int i=1;i<number;i++)
        {
            b=2*a;
            a=b;
        }
        return b;
    }
};
公開された25元の記事 ウォンの賞賛0 ビュー2075

おすすめ

転載: blog.csdn.net/weixin_44849403/article/details/104116705
おすすめ