Grokking the Coding Interview

Don’t Just LeetCode; Follow the Coding Patterns Instead

What if you don’t like to practice 100s of coding questions before the interview?

Arslan Ahmad
Level Up Coding
Published in
5 min readSep 15, 2022

--

Grokking the Coding Interview
Grokking the Coding Interview

Coding Interviews are getting harder. To prepare for coding interviews, you will need weeks, if not months of preparation.

No one likes spending that much time preparing for the coding interviews. So is there a smarter solution?

First, let’s look at the problem.

Anyone preparing for coding interviews definitely knows LeetCode. It is probably the biggest online repository for coding interview questions. Let’s take a look at what problems people face when using LeetCode.

Problems with LeetCode

There are around 3k problems in LeetCode. The biggest challenge with LeetCode is its lack of organization; it has a huge set of coding problems, and you are not sure where to start or what to focus on.

One wonders, is there an adequate number of questions one should go through to consider themselves prepared for the coding interview?

I would love to see a streamlined process that guides me and teaches me enough algorithmic techniques to feel confident for the interview. As a lazy person myself, I wouldn’t like to go through even 500 questions.

The Solution

One technique that people often follow is to solve questions related to the same data structure; for example, focusing on questions related to Arrays, then LinkedList, HashMap, Heap, Tree, Graph, or Trie, etc. Although this does provide some organization, it still lacks coherence. For example, many questions can be solved using HashMap but still require different algorithmic techniques.

I would love to see question sets that follow not only the same data structure but also similar algorithmic techniques.

The best thing I came across was the problem-solving patterns like Sliding Window, Fast and Slow Pointers, Two Pointers, Two Heaps, Topological Sort, etc. Following these patterns helped me nurture my ability to ‘map a new problem to an already known problem’. This not only made this whole coding-interview-preparation process fun but also a lot more organized.

Coding patterns enhance our “ability to map a new problem to an already known problem.”

Coding Patterns

I have gathered around 20 of these coding problem patterns that I believe can help anyone learn these beautiful algorithmic techniques and make a real difference in the coding interviews.

The idea behind these patterns is that once you’re familiar with a pattern, you’ll be able to solve dozens of problems with it. For a detailed discussion of these patterns and related problems with solutions, take a look at Grokking the Coding Interview.

If you like this article, join my newsletter.

So, without further ado, let me list all these patterns:

  1. Sliding Window
  2. Islands (Matrix Traversal)
  3. Two Pointers
  4. Fast & Slow Pointers
  5. Merge Intervals
  6. Cyclic Sort
  7. In-place Reversal of a LinkedList
  8. Tree Breadth-First Search
  9. Tree Depth First Search
  10. Two Heaps
  11. Subsets
  12. Modified Binary Search
  13. Bitwise XOR
  14. Top ‘K’ Elements
  15. K-way Merge
  16. Topological Sort
  17. 0/1 Knapsack
  18. Fibonacci Numbers
  19. Palindromic Subsequence
  20. Longest Common Substring

Following is a small intro of each of these patterns with sample problems:

Coding Patterns

Thanks for reading

--

--

Founder www.designgurus.io | Formally a software engineer @ Facebook, Microsoft, Hulu, Formulatrix | Entrepreneur, Software Engineer, Writer.