forked from qiyuangong/leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path070_Climbing_Stairs.py
37 lines (32 loc) · 917 Bytes
/
070_Climbing_Stairs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class Solution(object):
# def climbStairs(self, n):
# """
# :type n: int
# :rtype: int
# """
# dp = [0] * (n + 1)
# dp[0] = 1
# dp[1] = 1
# for i in range(2, n + 1):
# dp[i] = dp[i - 2] + dp[i- 1]
# return dp[n]
def climbStairs(self, n):
if n <= 1:
return 1
dp = [1] * 2
for i in range(2, n + 1):
dp[1], dp[0] = dp[1] + dp[0], dp[1]
return dp[1]
# C = {1: 1, 2: 2}
# def climbStairs(self, n):
# """
# :type n: int
# :rtype: int
# """
# if n in Solution.C:
# return Solution.C[n]
# else:
# result = Solution.C.get(n - 1, self.climbStairs(n - 1)) + \
# Solution.C.get(n - 2, self.climbStairs(n - 2))
# Solution.C[n] = result
# return result