70. Climbing Stairs(Easy)

来源:互联网 发布:mac插上电池没有充电 编辑:程序博客网 时间:2024/06/08 15:16

原题目:
  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[n] ;    }};
原创粉丝点击