LeetCode Climbing Stairs

来源:互联网 发布:lovelive淘宝推荐 编辑:程序博客网 时间:2024/06/10 16:34

LeetCode解题之Climbing Stairs


原题

一共有n级楼梯,每次能够爬一级或两级,共有多少种不同的爬法爬到顶端。

注意点:

例子:

输入: n = 6

输出: 13

解题思路

典型的动态规划题,递推表达式为 dp[i]=dp[i-1]+dp[i-2],n为1时只有一种方法,n为2时有两种方法。

AC源码

class Solution(object):    def climbStairs(self, n):        """        :type n: int        :rtype: int        """        if n <= 2:            return n        dp = [0 for __ in range(n)]        dp[0] = 1        dp[1] = 2        for i in range(2, n):            dp[i] = dp[i - 1] + dp[i - 2]        return dp[n - 1]if __name__ == "__main__":    assert Solution().climbStairs(6) == 13

欢迎查看我的Github (https://github.com/gavinfish/LeetCode-Python) 来获得相关源码。

1 0
原创粉丝点击