Climbing Stairs

Question

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?

Note: Given n will be a positive integer.

Tags

  • Dynamic Programming

Thought

For the last two steps on the stairs, you can choose to clime either 1 or t 2 steps. Thus the recurrence equation is

DP[i] = DP[i-1] + DP[i-2]

Code

class Solution(object):
    def climbStairs(self, n):
        """
        :type n: int
        :rtype: int
        """
        if n < 1:
            return 1
        DP = [0 for _ in xrange(n + 1)]
        DP[0] = 1
        DP[1] = 1
        for i in xrange(2, n + 1):
            DP[i] = DP[i - 1] + DP[i - 2]
        return DP[-1]

results matching ""

    No results matching ""