Climbing Stairs

You are climbing a stair case. It takes n steps to reach to the top.

Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

Example

Given an example n=3 , 1+1+1=2+1=1+2=3

return 3

Solution

n <=0 or n == 1 return 1

n == 1 or n == 2:

paths[0] = 1

paths[1] = 2

class Solution:
    """
    @param n: An integer
    @return: An integer
    """
    def climbStairs(self, n):
        # write your code here
        if n <= 0:
            return 1
        if n ==1 or n == 2:
            return n
        paths = [0 for x in range(n)]

        paths[0] = 1
        paths[1] = 2

        for i in range(2, n):
            paths[i] = paths[i-1] + paths[i-2]
        return paths[-1]

Last updated

Was this helpful?