LeetCode 70. Climbing Stairs

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 70. Climbing Stairs相关的知识,希望对你有一定的参考价值。

只能用1、2相加得到n,求有几种加法。

ver0:递归,意料之中的TLE

1 class Solution {
2 public:
3     int climbStairs(int n) {
4         if(n==1) return 1;
5         if(n==2) return 2;
6         return climbStairs(n-1) + climbStairs(n-2);
7     }
8 };

ver1:略加修改

 1 class Solution {
 2 public:
 3     int climbStairs(int n) {
 4         if(n==1) return 1;
 5         if(n==2) return 2;
 6         int* p = new int[n];
 7 
 8         p[0] = 1, p[1] = 2;
 9         for(int i=2;i<n;++i)
10             p[i] = p[i-1] + p[i-2];
11 
12         return p[n-1];
13     }
14 };

 

其他版本代码,以后再琢磨。

1 class Solution {
2 public:
3     int climbStairs(int n) {
4        int x[3]={1,1,0},k=1;
5        while(++k<=n)    x[k%3] = x[(k-1)%3] + x[(k-2)%3];
6        return x[n%3];
7     }
8 };

 

以上是关于LeetCode 70. Climbing Stairs的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 70. Climbing Stairs

Leetcode-70 Climbing Stairs

Leetcode 70 Climbing Stairs

[Leetcode 70]: Climbing Stairs

[leetcode]70.Climbing Stairs

LeetCode 70. Climbing Stairs