[Day13]-[动态规划] 爬楼梯
70. 爬楼梯
难度简单 2360 收藏分享切换为英文接收动态反馈
假设你正在爬楼梯。需要 n
阶你才能到达楼顶。
每次你可以爬 1
或 2
个台阶。你有多少种不同的方法可以爬到楼顶呢?
示例 1:
复制代码
示例 2:
复制代码
题解:
复制代码
本文字数:336 字
阅读完需:约 1 分钟
难度简单 2360 收藏分享切换为英文接收动态反馈
假设你正在爬楼梯。需要 n
阶你才能到达楼顶。
每次你可以爬 1
或 2
个台阶。你有多少种不同的方法可以爬到楼顶呢?
示例 1:
输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶
示例 2:
输入:n = 3
输出:3
解释:有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶
题解:
func climbStairs(n int) int {
fn := func (n int) int {
if n <= 2 {
return n
}
sum, pre, current := 0, 1, 2
for i := 3; i <= n; i++ {
sum = pre + current
pre, current = current, sum
}
return sum
}
return fn(n)
}
Dead or Alive. 生存战斗是知识的源泉! 2018.11.08 加入
我是一名SRE哨兵,目前是好大夫基础架构部高级工程师。专注于 SRE,微服务、中间件的稳定性和可用性建设,整体负责好大夫服务治理云平台的设计和搭建!
促进软件开发及相关领域知识与创新的传播
评论