AspBucket offers ASP.NET, C#, VB, Jquery, CSS, Ajax, SQL tutorials. It is the best place for programmers to learn

Sunday 22 January 2023

DSA problem solution: 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


Solution:

public class Solution {
    int[] dp;
    public int ClimbStairs(int n) {
       dp = new int[n+2];
       return Climb(0,n);
    }

    public int Climb(int currStep,int n)
    {
        if(currStep==n)       
            return 1;      
        if(currStep>n)      
            return 0;      

        int onestep= dp[currStep+1];
        if(dp[currStep+1]==0)
        {
        onestep= Climb(currStep+1,n);
        dp[currStep+1] = onestep;
        }
        
        int twostep=dp[currStep+2];
        if(dp[currStep+2]==0)
        {
        twostep= Climb(currStep+2,n);
        dp[currStep+2] = twostep;
        }
        return onestep+twostep;
    }


}

0 comments :

Post a Comment

  • Popular Posts
  • Comments