70. 爬楼梯

70. 爬楼梯

解法一: 动态规划: O(n) 空间复杂度

go
1
2
3
4
5
6
7
8
9
10
11
12
func climbStairs(n int) int {
if n == 1 {
return 1
}
dp := make([]int, n + 1)
dp[1] = 1
dp[2] = 2
for i := 3; i <= n; i++ {
dp[i] = dp[i - 2] + dp[i - 1]
}
return dp[n]
}

解法二: 动态规划: O(1) 空间复杂度

go
1
2
3
4
5
6
7
8
9
10
11
func climbStairs(n int) int {
if n == 1 {
return 1
}
i1 := 1
i2 := 2
for i := 3; i <= n; i++ {
i1, i2 = i2, i1 + i2
}
return i2
}
作者

wuhunyu

发布于

2023-12-10

更新于

2023-12-10

许可协议