mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-02 13:12:44 +00:00
46 lines
1.0 KiB
Plaintext
46 lines
1.0 KiB
Plaintext
---
|
|
title: '70. Climbing Stairs'
|
|
description: You are climbing a staircase. It takes n steps to reach the top
|
|
icon: dot
|
|
topics:
|
|
- { name: "Math", slug: "math" }
|
|
- { name: "Dynamic Programming", slug: "dynamic-programming" }
|
|
- { name: "Memoization", slug: "memoization" }
|
|
sidebar:
|
|
label: 'Climbing Stairs'
|
|
badge: 'Easy'
|
|
---
|
|
|
|
### 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
|
|
```
|