Skip to content
the poor coder

Leetcode - Climbing Stairs Solution

Poor Man
Published
Updated
Reading time
1 min read

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:

Text
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:

Text
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 in Python#

Python
class Solution:
    def climbStairs(self, n: int) -> int:
        def fact(x):
            if x==1 or x==0:
                return 1
            else:
                return x*fact(x-1)
        c = {1: n , 2: 0}
        steps = 0
        while c[1]>-1:
            x,y = c.values()
            p = fact(x+y)//(fact(x)*fact(y))
            steps+= p
            c[1] -= 2
            c[2] += 1
        return steps

Keep going

2021

Leetcode - Triangle Solution

Given a triangle array, return the minimum path sum from top to bottom. For each step, you may move to an adjacent number of the row below. More formally, if you are on index i on the current row, you may move to either…

ESC