This repository is organized to help prepare for coding interviews by practicing LeetCode problems.
Each pattern has its own package with the following structure:
pattern/
├── README.md # Pattern overview, tips, and resources
├── CheatSheet.md # Quick reference for the pattern
├── problems/ # Individual problems within this pattern
│ ├── Problem1/ # One directory per problem
│ │ ├── README.md # Problem description, approaches, and complexity analysis
│ │ ├── Solution1.java # First solution approach
│ │ └── Solution2.java # Alternative solution approach
│ └── Problem2/
└── common/ # Common utilities or helper classes for this pattern
- Arrays
- Backtracking
- BinarySearch
- BitManipulation
- DynamicProgramming
- Graph
- HashMapSet
- HeapsAndPriorityQueues
- Intervals
- LinkedList
- MonotonicStack
- SlidingWindow
- Trees
- Trie
- TwoPointers
- Study the pattern README.md for an overview
- Reference CheatSheet.md for quick pattern techniques
- Work through individual problems in the problems/ directory
- Implement multiple solutions when possible to understand tradeoffs