码迷,mamicode.com
首页 > 其他好文 > 详细

272. 爬楼梯 II

时间:2021-01-13 10:36:17      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:sample   不同的   edit   checked   body   lis   output   xpl   ant   

272. 爬楼梯 II

中文English

一个小孩爬一个 n 层台阶的楼梯。他可以每次跳 1 步, 2 步 或者 3 步。实现一个方法来统计总共有多少种不同的方式爬到最顶层的台阶。

样例

Example 1:

Input: 3
Output: 4
Explanation: 1 + 1 + 1 = 2 + 1 = 1 + 2 = 3 = 3 , there are 4 ways.

Example 2:

Input: 4
Output: 7
Explanation: 1 + 1 + 1 + 1 = 1 + 1 + 2 = 1 + 2 + 1 = 2 + 1 + 1 = 2 + 2 = 1 + 3 = 3 + 1 = 4 , there are 7 ways.

说明

对于n=0,我们认为答案是1。

class Solution:
    """
    @param n: An integer
    @return: An Integer
    """
    def climbStairs2(self, n):
        # write your code here
        if not n: return 1 
        
        dp = [0 for i in range(n + 1)]
        for i in range(n + 1):
            if i in [0, 1]:
                dp[i] = 1 
            elif i == 2:
                dp[i] = 2 
            elif i == 3:
                dp[i] = 4
            else:
                dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3] 
        
        return  dp[n]

 

272. 爬楼梯 II

标签:sample   不同的   edit   checked   body   lis   output   xpl   ant   

原文地址:https://www.cnblogs.com/yunxintryyoubest/p/14260316.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!