Leetcode练习,Python:动态规划类:第70题:爬楼梯:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。?

题目:

爬楼梯:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。

思路:

斐波那契数列

程序:

import functools

class Solution:

@functools.lru_cache(None)

def climbStairs(self, n: int) -> int:

if n == 0:

return 0

if n == 1:

return 1

if n == 2:

return 2

return self.climbStairs(n-1) + self.climbStairs(n-2)