题目:你正在爬楼梯。需要 n 步你才能到达顶部。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方式可以爬到楼顶呢?题解:
func dyclimbStairs(_ n: Int) -> Int {
// 边界
if n == 1 || n == 2{
return n
}
// 子
var dp = [1,1,2]
for i in 3 ... n {
// 动态方程
dp.append(dp[i-1] + dp[i-2])
}
return dp[n-1]
}