python LeetCode 刷题记录 70

题目

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

代码

# 核心思想:将到达n层的次数转化为到达n-1层和n-2层的次数和
# 原因:因为一次只能走1步或者2步,所以到达该层只有两种方案,即n-1和n-2,然后计算这两层的方案数
class Solution:
    def climbStairs(self, n: int) -> int:
        ls = [i for i in range(1, n+1)]
        for i in range(2, n):
            ls[i] = ls[i-1]+ls[i-2]
        return ls[n-1]

你可能感兴趣的:(LeetCode,leetcode,算法)