Class Solution
Easy
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
To solve the “Climbing Stairs” problem in Java with the Solution class, follow these steps:
- Define a method
climbStairs
in theSolution
class that takes an integern
as input and returns the number of distinct ways to climb to the top of the staircase withn
steps. - Initialize an array
dp
of sizen+1
to store the number of distinct ways to reach each step. - Set
dp[0] = 1
anddp[1] = 1
since there is only one way to reach the first and second steps. - Iterate over the steps from
2
ton
:- At each step
i
, the number of distinct ways to reach stepi
is the sum of the number of ways to reach stepsi-1
andi-2
. - Store this sum in
dp[i]
.
- At each step
- Return
dp[n]
, which represents the number of distinct ways to climb to the top of the staircase withn
steps.
Here’s the implementation of the climbStairs
method in Java:
class Solution {
public int climbStairs(int n) {
if (n == 1) return 1;
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];
}
}
This implementation efficiently calculates the number of distinct ways to climb the stairs using dynamic programming, with a time complexity of O(n) and a space complexity of O(n).
-
Constructor Summary
-
Method Summary
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
Solution
public Solution()
-
-
Method Details
-
climbStairs
public int climbStairs(int n)
-