1, 题目
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。
示例 1:
输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶
示例 2:
输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/climbing-stairs
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2, 算法
#pythonobject Solution {def climbStairs(n: Int): Int = {if (n < 3) {return n}var fn1 = 1var fn2 = 2var fn = 0for (i <- 3 to n) {fn = fn1 + fn2fn1 = fn2fn2 = fn}fn}}
#pythonclass Solution:def climbStairs(self, n: int) -> int:if n < 3:return na, b = 1, 2for i in range(2, n):fn = a + ba, b = b, fnreturn fn
