タイトル説明
カエルは、クラス1レベルにジャンプすることができ、あなたはまた、レベル2に飛び乗っすることができます。カエルはどのように多くのジャンプ(別の計算異なる結果の順序)は、n級レベルの合計を求めて飛び込みました。
問題解決のためのアイデア
数学的順列と組み合わせの問題、分析するのは簡単です:
その後、ステップの種類がジャンプする方法を多く知っているの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-ステップ、対応もあります
の場合。
ソース
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;
}
};