[LeetCode]初級アルゴリズム-ダイナミックプランニング-階段を登る


階段を登る
階段を登っているとします.屋上に着くにはn歩かかります.
毎回1つか2つの階段を登ることができます.屋上に登る方法はいくつありますか?
注:指定されたnは正の整数です.
例1:
 2
 2
            。
1.  1   + 1  
2.  2  

例2:
 3
 3
            。
1.  1   + 1   + 1  
2.  1   + 2  
3.  2   + 1  

再帰を採用し、運行時間が長すぎますが、書くのは簡単です.
public static int climbStair(int n) {
        if(n==1||n==0){
            return 1;
        }

        return climbStair(n-1)+climbStair(n-2);

    }

 
効率的に実行するために反復(フィボナッチ数列と同様)を採用
public int climbStairs2(int n) {
        int[] result=new int[n];
        if(n==1){
            return 1;
        }
        result[0]=1;
        result[1]=2;

        for(int i=2;i