mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-02 13:12:44 +00:00
58 lines
1.7 KiB
Plaintext
58 lines
1.7 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" }
|
|
issue: "https://github.com/prdlk/leetcode/issues/157"
|
|
companies:
|
|
- { name: "Infosys", period: "Thirty Days", frequency: 80.2 }
|
|
- { name: "Bloomberg", period: "Thirty Days", frequency: 69.8 }
|
|
- { name: "Intuit", period: "Thirty Days", frequency: 66.1 }
|
|
- { name: "Ola Cabs", period: "Thirty Days", frequency: 65.6 }
|
|
- { name: "Meta", period: "Thirty Days", frequency: 53.8 }
|
|
- { name: "Amazon", period: "Thirty Days", frequency: 48.9 }
|
|
- { name: "Google", period: "Thirty Days", frequency: 36.7 }
|
|
- { name: "Microsoft", period: "Three Months", frequency: 48.3 }
|
|
- { name: "tcs", period: "Three Months", frequency: 47.7 }
|
|
- { name: "Deloitte", period: "Six Months", frequency: 81 }
|
|
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
|
|
```
|