LeetCode-70.爬楼梯 发表于 2020-02-18 分类于 算法 题目描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 12345输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶 123456输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶 提示: 1 <= n <= 45 题解动态规划:第n级台阶的方法数可能是从n-1级台阶上来的,也可能是第n - 2级台阶上来的,所以:f(n) = f(n-1) + f(n - 2) 12345678910111213141516func climbStairs(_ n: Int) -> Int { if n == 1 { return 1 } if n == 2 { return 2 } var preOfPre = 1 var pre = 2 for _ in 3 ..< n { let cur = preOfPre + pre preOfPre = pre pre = cur } reture pre}