70. 爬楼梯


假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例 1:

输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1 阶 + 1 阶
2.  2 阶
示例 2:

输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1.  1 阶 + 1 阶 + 1 阶
2.  1 阶 + 2 阶
3.  2 阶 + 1 阶
思路:第n阶是从第n-1阶(走一步到n)或者第n-2阶(一次走两步到n)上来的,
所以第n的方法数等于到n-1和到n-2的方法数的和,而n==1时有一种,而n==2时后两种
class Solution {
public:
    int climbStairs(int n) {
        int first=1;
        int second=2;
        if(n==1)
            return 1;
        if(n==2)
            return 2;
        int sum;
        for(int i=2;i<n;i++)
        {
            sum=first+second;
            first=second;
            second=sum;
        }
        return sum;
    }
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 内容 假设你正在爬楼梯。需要 n 步你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬...
    吃饭用盘装阅读 191评论 0 0
  • 思路:通过对各阶次数分析可以看出符合斐波那契数列:1 1 2 3 5 8 13 。。。即当前数是前两数之和。所以第...
    二木二三水阅读 449评论 0 1
  • 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢...
    vbuer阅读 153评论 0 0
  • 浪子回头金不换。 现实中有太多这样的例子了,能证明这句话的正确性。 我们都这么大了,谁会没有点错误,做错了事情,认...
    我心我愿秀阅读 394评论 1 3
  • 印象笔记文档 一、情景 判断输入字符串是否为空 分析:null && “” || length()==0 二、区分...
    瑾兰阅读 982评论 0 0