mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-02 21:22:43 +00:00
53 lines
1.0 KiB
Python
53 lines
1.0 KiB
Python
"""
|
|||
|
|
70. Climbing Stairs
|
||
|
|
Difficulty: Easy
|
||
|
|
https://leetcode.com/problems/climbing-stairs/
|
||
|
|
|
||
|
|
──────────────────────────────────────────────────
|
||
|
|
|
||
|
|
You are climbing a staircase. It takes n steps to reach the top.
|
||
|
|
|
||
|
|
Each time you can either climb 1 or 2 steps. In how many distinct
|
||
|
|
ways can you climb to the top?
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
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
|
||
|
|
"""
|
||
|
|
|
||
|
|
|
||
|
|
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
|