Data Structure and Algorithm (DSA) questions are a core part of the interview for most software engineering roles. These questions, sometimes called "Leetcode problems", are essential to master if you want a reasonable pass rate in your interviews.
However, so many engineering candidates struggle to truly understand these questions, resulting in lower confidence and worse performance. Here are the best tips when it comes to passing these types of interviews:
- The key to mastering DSA is to learn patterns and not memorize code. The "drill and kill" style of studying is really badly suited for DSA.
- 80% of asked DSA problems will use 1 of ~15 different patterns. So rather than focusing on individual problems, your goal should be to connect the problem to a broader, recurring pattern.
- Examples of patterns: binary search, graph traversal, sliding window, tail recursion. Being able to understand problems of the same type is essential. Being able to name the pattern is even better.
- Extensively comment your solutions, primarily with the key pattern behind the problem. When you get started, it will be painstakingly slow to understand each line of code, and potentially comment it. That's ok! You will feel frustrated, but your goal is to deeply understand the problem and solution, instead of simply solving as many problems as you can.
- When you can't figure out a problem, read 10-20% of the solution and see if you can come up with the entire solution from there. Build the muscle of converting high-level points into fleshed out solutions