12. Min Cost Climbing Stairs
The problem can be found at the following link: Question Link
Problem Description
Given an array of integers cost[], where cost[i] represents the cost of the i-th step on a staircase, you can either:
Pay the cost at
i-thstep and move one step forward.Pay the cost at
i-thstep and move two steps forward.
Return the minimum cost required to reach the top of the floor.
📌 Assumptions:
0-based indexing
You can start either from step 0 or step 1
Examples
Example 1:
Input:
cost[] = [10, 15, 20]Output:
Explanation:
The cheapest way is:
Start at
cost[1] = 15Jump 2 steps to the top (no cost at the top)
Example 2:
Input:
Output:
Explanation:
The cheapest way is:
1 → 3 → 4 → 6 → 7 → 9 (Total cost = 1 + 1 + 1 + 1 + 1 + 1 = 6)
Constraints:
$(2 \leq \text{cost.length} \leq 1000)$
$2 ≤ cost.size() ≤ 10^5$
$(0 \leq \text{cost[i]} \leq 999)$
My Approach
Algorithm Steps:
Use two variables
aandbto keep track of the minimum cost of the last two steps.Iterate through the cost array, updating
busing the recurrence relation:b = cost[i] + min(a, b)a = previous b(before update)
Return
min(a, b), representing the minimum cost to reach the top.
Time and Auxiliary Space Complexity
Expected Time Complexity:
O(N), as we iterate through thecostarray once.Expected Auxiliary Space Complexity:
O(1), as we use only a constant amount of extra space (aandb).
Code (C++)
Code (Java)
Code (Python)
Contribution and Support
For discussions, questions, or doubts related to this solution, feel free to connect on LinkedIn: Any Questions. Let’s make this learning journey more collaborative!
⭐ If you find this helpful, please give this repository a star! ⭐
📍Visitor Count
Last updated