Climbing Stairs|leetcode 70【Java解題レポート】
898 ワード
原題リンク:
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次パス数を格納する.
45/45 test cases passed. Runtime: 0 ms Your runtime beats 13.04% of javasubmissions.
【補足】
さいきかいほう
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
}
}
}