As you get more experienced at LeetCode practice, you can envision a hierarchy of problem-solving skills, where each level helps with a different aspect of problem-solving. At the base of the hierarchy is the most concrete skill: Learning a model solution and using what you learn to solve the specific problem for which you wrote […]
ContinueLeetCode Tip 29: Use a Problem-Solving Process
Learning a model solution is worthwhile because it gives you a process for solving similar problems. If you know how to analyze and solve one binary search problem, you can apply it to similar situations where you have sorted data and need to search for a target value. The more model solutions you know, the […]
ContinueLeetCode Tip 28: More Advice for Writing Memorable Solutions
A model solution shouldn’t just explain how to solve a problem. It should also help you remember the solution, so you can use it in the future for similar problems. Here are a few more ideas for writing solutions you’ll remember. Use multiple levels of abstraction Think of a model solution like a pyramid, with […]
ContinueLeetCode Tip 27: Make Your Model Solutions More Memorable
A model solution is a place to record everything you think is important about a problem and its solution. If you can learn and remember your model solution, you’ll be able to reproduce the solution to the model problem, and you’ll have a head start on solving similar problems. When you write your own model […]
ContinueLeetCode Tip 26: Levels of Abstraction
The point of studying model solutions is to learn a collection of patterns. When you encounter a problem that resembles a model solution you already know, you can apply your model solution with a few adjustments, and quickly solve the new problem. You don’t have to start every problem from scratch. But sometimes a problem […]
ContinueLeetCode Tip 25: Deliberate Practice for LeetCode
Unlike a real-world software project, LeetCode is set up for effective practice. But what is effective in general may not be effective for you specifically. So it’s worth thinking about the best way to practice. The framework I use is explained in Deliberate Practice for Software Developers. Let’s see how the five elements of deliberate […]
ContinueLeetCode Tip 24: Coding for Practice is Different from Coding for Work
There may be a way to design an effective interview process where candidates don’t have to prepare for the interview while companies still get the information they need to make effective hiring decisions. But no one has yet come up with such a process that scales to the needs of large companies. So we have […]
ContinueLeetCode Tip 23: Learning Algorithms and Data Structures
Most LeetCode problems require some knowledge of algorithms and data structures. But LeetCode problems are also a way to learn algorithms and data structures. So there’s a symbiotic relationship between the problems and the knowledge required to solve them. Reading a textbook chapter about binary search will help you understand the principles behind it, how […]
ContinueLeetCode Tip 22: Remembering vs. Understanding
A common criticism of algorithmic coding interviews is that they select for people who have “memorized a bunch of obscure algorithms.” In this view, recent computer science graduates have an advantage over experienced developers because they can still remember the material from their algorithms courses. And candidates can beat the system by memorizing a list […]
ContinueLeetCode Tip 21: Learning Language Libraries
Gaining fluency in language syntax is the first step in getting better at expressing the solution to an interview problem in code. But even in a coding interview, you won’t be expected to implement everything from first principles. It’s true that if the interview question asks how to implement a hash table, then you’ll have […]
Continue- « Previous Page
- 1
- …
- 3
- 4
- 5
- 6
- 7
- …
- 49
- Next Page »