Climbing Stairs|leetcode 70【Java解題レポート】


原題リンク:
70. Climbing Stairs
【考え方】
テーマ提示ダイナミックプランニング.n次はn−1次とn−2次のみに関係することが知られており,関係はways[n]=ways[n−1]+ways[n−2]であり,格納時には2つのメモリセルしか必要とせず,本題ではways[0]でn−2次のパス数を格納し,ways[1]はn−1次パス数を格納する.
public class Solution {
    public int climbStairs(int n) {
        int[] ways = {1, 1};
        for (int i = 1; i < n; i++) {
            int temp = ways[1];
            ways[1] += ways[0];
            ways[0] = temp;
        }
        return ways[1];
    }
}

45/45 test cases passed.   Runtime: 0 ms  Your runtime beats 13.04% of javasubmissions.
【補足】
さいきかいほう
public class Solution {
    public int climbStairs(int n) {
        if(n == 1 || n<=0) return 1;
        return climbStairs(n-1) + climbStairs(n-2);       //Time Limit Exceeded when n >= 42
        }
    }
}