Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time

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.

Example 1:

Input: 2 Output: 2 Explanation: There are two ways to climb to the top.

  1. 1 step + 1 step
  2. 2 steps Example 2:

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

My code:

import numpy as np
class Solution:
    def climbStairs(self, n):
        """
        :type n: int
        :rtype: int
        """
        if n==0:
            return 1
        self.matrix=np.zeros(n)-1
        count=self.Sub_climb(n)
        return int(count)
    def Sub_climb(self,n):
        if n==1:
            return 1
        if n==2:
            return 2
        if self.matrix[n-1]!=-1:
            return self.matrix[n-1]
        count1=self.Sub_climb(n-1)
        count2=self.Sub_climb(n-2)
        self.matrix[n-1]=count1+count2
        return self.matrix[n-1]
        

Solution: https://leetcode.com/problems/climbing-stairs/