[LeetCode] Climbing Stairs

1.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.

2.题目要求:假设梯子有n层,计算如何爬到第n层,因为每次只能爬1或2步,那么爬到第n层的方法要么是从第n-1层一步上来的,要不就是从n-2层2步上来的,所以递推公式非常容易的就得出了:dp[n] = dp[n-1] + dp[n-2]。

3.方法:斐波那契数列求解。

4.代码:
class Solution {
public:
int climbStairs(int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
long long f[100];
f[0] = 1;
f[1] = 1;

    for(int i = 2; i < 100; i++)
        f[i] = f[i-1] + f[i-2];
        
    return f[n]; 
}

};

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,769评论 0 33
  • Question: You are climbing a stair case. It takes n steps...
    猫和芝士蛋糕阅读 157评论 0 0
  • Description You are climbing a stair case. It takes n ste...
    Juliiii阅读 150评论 0 0
  • 1 深秋时候,叮咛着的小虫已然噤声,未照顾好自己的昆虫在岁暮里挣扎。 隔了夜,升了旭阳,街道上人便渐次热闹起来。你...
    夫子楼阅读 625评论 0 0
  • 清代小说家蒲松龄说得好:“性痴,则其志凝。故书痴者文必工,艺痴者技必良。”因为近乎痴迷,所以才能用心专一、精益求精...
    栖居侠客阅读 791评论 0 0