【LeetCode】Climbing Stairs

【题目】

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?

【分析】

一看就是用动态规划,本题与求二叉搜索树那道类似,但是要简单些。
d(i) = d(i-1) + d(i-2)

【代码】

class Solution:
    # @param n, an integer
    # @return an integer
    def climbStairs(self, n):
        dp = [0, 1, 2]
        if n <= 2:
            return dp[n]
        dp += [0 for i in range (n-2)]
        for i in range (3, n + 1):
            dp[i] += dp[i-1] + dp[i-2]

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

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,788评论 0 33
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,998评论 0 23
  • 我自己或许是一个非常喜欢观察和研究的人,我一直在想,社会缺乏人才的甄选机制,以至于像我这样的人,居然没有成为科学家...
    c2d0f89799f8阅读 225评论 0 1
  • 路九年,你还好吗? 你知道吗,我喜欢你了九年,很喜欢很喜欢,结婚的时候戒指都划花了脸。 我站在秋风里看那...
    千端阅读 218评论 0 0
  • 坚持,是走向成功的一条捷径,唯有坚持,才能可能成功,有时候我展会设计也想过放弃,但是放弃之后呢,便不得而知,心中累...
    liduoduo35阅读 1,043评论 0 0