题目
假设你正在爬楼梯。需要 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 阶
到达第n阶有两种方式,
1、由n-1阶爬1阶
2、由n-2阶爬2阶
所以,到第n阶的方法应该是((n-1)阶的方法)+((n-2)阶的方法)
方法
func climbStairs(_ n: Int) -> Int {
//爬楼梯
if n<3 {
return n
}
var l1 = 1 //第n-2
var l2 = 2 //第n-1
var result = 3 //第n
for i in 3...n {
result = l1 + l2
l1 = l2
l2 = result
}
return result
}
最后
中间隔了好几天没做leetCode题,今天开始要继续坚持呀~不懒不拖延(不要被打脸)
网友评论