您的位置:首页 > 大数据 > 人工智能

70. Climbing Stairs(Easy)

2017-05-22 20:33 405 查看
原题目:

  You are climbing a stair case. It takes n steps to reach to the top.

  Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

  Note: Given n will be a positive integer.

 

题目大意如下:

  每次只能爬一步或者两步梯子,问总共有多少种方法可以爬到顶端。

解题思路:

  动态规划。状态转移方程:c[i] = c[i-1] + c[i-2] ( n >= 2);

代码如下:

class Solution {
public:
int climbStairs(int n) {
int c[n+1] ;
memset(c , 0 , sizeof(c)) ;
if(n == 0) return 0 ;
if(n == 1) return 1 ;
if(n == 2) return 2 ;
c[0] = 0 ;
c[1] = 1 ;
c[2] = 2 ;
for(int i = 3 ; i < n+1 ; ++i)
c[i] = c[i-1] + c[i-2] ;
return c
;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  动态规划