Awesome
Leetcode Patterns
Table of Contents
Background
This repo is intended for any individual wanting to improve their problem solving skills for software engineering interviews.
Problems are grouped under their respective subtopic, in order to focus on repeatedly applying common patterns rather than randomly tackling questions.
All questions are available on leetcode.com with some requiring leetcode premium.
Fundamentals
To find the greatest amount of success when practicing, it is highly recommended to know the methods and runtimes of the following data structures and their operations:
- Arrays
- Maps
- Linked Lists
- Queues
- Heaps
- Stacks
- Trees
- Graphs
In addition, you should have a good grasp on common algorithms such as:
- Breadth-first search
- Depth-first search
- Binary search
- Recursion
Notes
This pdf contains information for the main data structures in Java.
Other useful methods to know include substring()
, toCharArray()
, Math.max()
,
Math.min()
, and Arrays.fill()
.
Question List
The entire question list can be found here: https://seanprashad.com/leetcode-patterns/.
Solutions
Solutions written in Java can be found in the solutions branch.
Suggestions
Think a question should/shouldn't be included? Wish there was another feature? Feel free to open an issue with your suggestion!
Acknowledgements
This list is heavily inspired from Grokking the Coding Interview with additional problems extracted from the Blind 75 list and this hackernoon article on 14 patterns to ace any coding interview question.