美文网首页
【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