Climbing Stairs Leetcode Solution

ByBrokenprogrammers

Dec 21, 2022

In this post, you will know how to solve the Climbing Stairs Leetcode Solution problem of Leetcode. This Leetcode problem is done in many programming languages like C++, Java, and Python.

One more thing to add, don’t directly look for the solutions, first try to solve the problems of Leetcode by yourself. If you find any difficulty after trying several times, then you can look for solutions.

Problem

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
```

Constraints:

• `1 <= n <= 45`

Climbing Stairs Leetcode Solutions in Python

```class Solution:
def climbStairs(self, n: int) -> int:
# dp[i] := # Of distinct ways to climb to i-th stair
dp = [1, 1] + [0] * (n - 1)
for i in range(2, n + 1):
dp[i] = dp[i - 1] + dp[i - 2]
return dp[n]
```

Climbing Stairs Leetcode Solutionsin CPP

```class Solution {
public:
int climbStairs(int n) {
// dp[i] := # of distinct ways to climb to i-th stair
vector<int> dp(n + 1);
dp[0] = 1;
dp[1] = 1;
for (int i = 2; i <= n; ++i)
dp[i] = dp[i - 1] + dp[i - 2];
return dp[n];
}
};
```

Climbing Stairs Leetcode Solutions in Java

```class Solution {
public int climbStairs(int n) {
// dp[i] := # of distinct ways to climb to i-th stair
int[] dp = new int[n + 1];
dp[0] = 1;
dp[1] = 1;
for (int i = 2; i <= n; ++i)
dp[i] = dp[i - 1] + dp[i - 2];
return dp[n];
}
}
```

Note: This problem Climbing Stairs is generated by Leetcode but the solution is provided by  BrokenProgrammers. This tutorial is only for Educational and Learning purposes.