あなたが階段を登っているとします。n
建物の屋上に行くには階段が必要です 。
登れるたび 1
、または 2
一歩進むたびに。建物の屋上に行くには、何通りの方法がありますか?
アイデア 1: 再帰
int climbStairs(int n){
int num[n+1];
num[0]=1,num[1]=1;
for(int i=2;i<=n;i++){
num[i]=num[i-1]+num[i-2];
}
return num[n];
}
分析します:
この質問の次のステップのメソッドは、前のステップのメソッドの数に最初の 2 つのステップを加えたものに等しく、n まで連続的に再帰して答えを取得します。
要約:
この問題は再帰の適用を検討します。ステップ問題を再帰問題に変換することで解決できます。