---
title: '70. Climbing Stairs'
description: You are climbing a staircase. It takes n steps to reach the top
icon: dot
sidebar:
  label: 'Climbing Stairs'
  badge: 'Easy'
---

Math

### Example 1:
- Input: `n = 2`
- Output: `2`
- Explanation: There are two ways to climb to the top. `1`. `1` step + `1` step `2`. `2` steps

### Example 2:
- Input: `n = 3`
- Output: `3`
- Explanation: There are three ways to climb to the top. `1`. `1` step + `1` step + `1` step `2`. `1` step + `2` steps `3`. `2` steps + `1` step

### Constraints:

- `1 <= n <= 45`

## Solution

```py
class Solution:
    def climbStairs(self, n: int) -> int:
        if n == 1:
            return 1
        if n == 2:
            return 2

        first, second = 1, 2

        for _ in range(3, n + 1):
            third = first + second
            first, second = second, third

        return second
```
