Skip to content

Climbing Stairs

Topic: 11. Dynamic Programming

Link: LeetCode 70 - Climbing Stairs

1. Logical Breakdown

  • [x] Core Logic: ways(i) = ways(i-1) + ways(i-2).
  • [x] Pattern: Fibonacci Sequence.

2. Visualization

graph LR Step0["1"] --> Step1["1"] Step1 --> Step2["2"] Step2 --> Step3["3"] Step3 --> Step4["5"]

3. Complexity

  • Time: O(N)
  • Space: O(N)

4. Code

package com.dsa.dp;

public class ClimbingStairs {
    public int solve(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];
    }
}