Loading…
Senior-level problems that chain multiple patterns or demand a non-obvious invariant. We decompose each one into the building blocks you already know, so hards feel like three mediums stacked.
Grouped by curriculum module
Study guide
Overview
Hard problems are the tier that separates good candidates from great ones. They usually require a non-obvious insight — a clever invariant, an advanced data structure (segment tree, monotonic stack, union-find), or a DP formulation that isn't visible at first glance. You don't need to ace every hard to get an offer, but being comfortable with them is what earns senior levels and stand-out feedback.
We index 40 hard problems, each broken down brute-force → optimal in Java and Python with the reasoning that gets you to the key insight, not just the final code. They're grouped by module so you can build the advanced toolkit deliberately.
The right mindset for hard problems is patience: explore small cases, look for an invariant, and connect the problem to a pattern you already know before reaching for something exotic.
Study playbook
Common pitfalls
Frequently asked
Keep exploring