Climbing Stairs

简单的动态规划题,一维数组就够了。递推公式是c[n] = c[n-1] + c[n-2],c[n]表示楼梯数为n时的上楼方法。

ps:第一提交时由于没有释放new的int空间,所以报了一个runtime error。

 1 class Solution {
 2 public:
 3     int climbStairs(int n) {
 4         //c[n] = c[n-1] + c[n-2];
 5         int value;
 6         if(n == 0)
 7             return 0;
 8         if(n == 1)
 9             return 1;
10         int* c = new int[n];
11         c[0] = 1;
12         c[1] = 2;
13         for(int i=2;i<n;i++)
14         {
15             c[i] = c[i-1] + c[i-2];
16         }
17         value = c[n-1];
18         delete c;        //要释放,否则报错
19         return value;
20     }
21 };

 

posted @ 2014-11-28 17:00  醉剑客  阅读(157)  评论(0编辑  收藏  举报