Grinding 500 LeetCode problems is the slow way to prep. The fast way is pattern recognition — because most interview questions are a remix of ~15 underlying patterns. Once you can name the pattern in the first 30 seconds, you stop solving from scratch and start adapting a template you already know.

Here are the 15 that, in my experience, cover the vast majority of what actually shows up. For each: the signal that tells you to reach for it, and a representative problem.

The 15 patterns

1. Sliding Window — Signal: a contiguous subarray/substring, "longest/shortest/at most K." Ex: Longest Substring Without Repeating Characters.

2. Two Pointers — Signal: a sorted array, or pairs/triplets that sum to a target. Ex: 3Sum, Container With Most Water.