Day 43 — Climbing Stairs

Coding problem

ProblemClimbing Stairs
LeetCode ID(s)LeetCode #70
DifficultyEasy
Pattern1D DP
Company tagsGoogle
Suggested time10m

Solution outline (coding)

Focus on the 1D DP pattern. Start by writing out a few examples by hand, then identify the invariant you must maintain (e.g., prefix sums, window bounds, visited set, heap ordering). Aim for an implementation you can explain in under a minute, including time and space complexity.

Show Python solution
# Solution template based on the main pattern for this day.
# Replace this with your final, production-ready solution as you practice.

SQL question

stairs(user_id, day, steps). BigQuery: model DP-like cumulative metric: for each user, compute ways to reach a step goal using previous 1 or 2 days via iterative aggregation.

How to approach (SQL)

Break the prompt into steps:

  • Identify source tables, required joins, and filters (especially on time partitions).
  • Decide where you need GROUP BY vs. window functions (e.g., ROW_NUMBER, SUM() OVER, COUNT() OVER).
  • For BigQuery, think about partitioning and clustering to avoid unnecessary full scans.
  • Write the query in stages (CTEs) so each step is easy to debug and reason about. Finish by checking edge cases: nulls, late events, duplicated keys, and extreme values.