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 = 2Output:2Explanation:There are two ways to climb to the top. 1. 1 step + 1 step 2. 2 steps

**Example 2:**

Input:n = 3Output:3Explanation: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 Solutions** **in 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

**This tutorial is only for Educational and Learning purposes.**

**BrokenProgrammers**.**Next: **Valid Number Leetcode Solution