mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
Update 0070.爬楼梯.md
This commit is contained in:
@ -251,32 +251,66 @@ class Solution {
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Python
|
### Python
|
||||||
|
动态规划(版本一)
|
||||||
```python
|
```python
|
||||||
# 空间复杂度为O(n)版本
|
# 空间复杂度为O(n)版本
|
||||||
class Solution:
|
class Solution:
|
||||||
def climbStairs(self, n: int) -> int:
|
def climbStairs(self, n: int) -> int:
|
||||||
# dp[i] 为第 i 阶楼梯有多少种方法爬到楼顶
|
if n <= 1:
|
||||||
dp = [0]*(n+1)
|
return n
|
||||||
dp[0] = 1
|
|
||||||
|
dp = [0] * (n + 1)
|
||||||
dp[1] = 1
|
dp[1] = 1
|
||||||
for i in range(2, n+1):
|
dp[2] = 2
|
||||||
dp[i] = dp[i-1] + dp[i-2]
|
|
||||||
|
for i in range(3, n + 1):
|
||||||
|
dp[i] = dp[i - 1] + dp[i - 2]
|
||||||
|
|
||||||
return dp[n]
|
return dp[n]
|
||||||
|
|
||||||
|
```
|
||||||
|
动态规划(版本二)
|
||||||
|
```python
|
||||||
|
|
||||||
|
# 空间复杂度为O(3)版本
|
||||||
|
class Solution:
|
||||||
|
def climbStairs(self, n: int) -> int:
|
||||||
|
if n <= 1:
|
||||||
|
return n
|
||||||
|
|
||||||
|
dp = [0] * 3
|
||||||
|
dp[1] = 1
|
||||||
|
dp[2] = 2
|
||||||
|
|
||||||
|
for i in range(3, n + 1):
|
||||||
|
total = dp[1] + dp[2]
|
||||||
|
dp[1] = dp[2]
|
||||||
|
dp[2] = total
|
||||||
|
|
||||||
|
return dp[2]
|
||||||
|
|
||||||
|
```
|
||||||
|
动态规划(版本三)
|
||||||
|
```python
|
||||||
|
|
||||||
# 空间复杂度为O(1)版本
|
# 空间复杂度为O(1)版本
|
||||||
class Solution:
|
class Solution:
|
||||||
def climbStairs(self, n: int) -> int:
|
def climbStairs(self, n: int) -> int:
|
||||||
dp = [0]*(n+1)
|
if n <= 1:
|
||||||
dp[0] = 1
|
return n
|
||||||
dp[1] = 1
|
|
||||||
for i in range(2,n+1):
|
prev1 = 1
|
||||||
tmp = dp[0] + dp[1]
|
prev2 = 2
|
||||||
dp[0] = dp[1]
|
|
||||||
dp[1] = tmp
|
for i in range(3, n + 1):
|
||||||
return dp[1]
|
total = prev1 + prev2
|
||||||
```
|
prev1 = prev2
|
||||||
|
prev2 = total
|
||||||
|
|
||||||
|
return prev2
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
### Go
|
### Go
|
||||||
```Go
|
```Go
|
||||||
func climbStairs(n int) int {
|
func climbStairs(n int) int {
|
||||||
|
Reference in New Issue
Block a user