```
class Solution(object):
def climbStairs(self, n):
"""
:type n: int
:rtype: int
"""
# typical dynamic programming problem
dp = [1 for _ in range(n + 1)]
for i in range(2, n + 1):
dp[i] = dp[i - 1] + dp[i - 2]
return dp[n]
```