美文网首页
【LeetCode】Climbing Stairs

【LeetCode】Climbing Stairs

作者: 围墙内面包 | 来源:发表于2014-08-17 18:01 被阅读0次

【题目】

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】Climbing Stairs

      本文链接:https://www.haomeiwen.com/subject/gcietttx.html