码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 70. Climbing Stairs

时间:2016-02-13 23:05:15      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

只能用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

标签:

原文地址:http://www.cnblogs.com/co0oder/p/5188389.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!