DS-Algo Practice (Java)
Setup
- Java Version: Java 17+ (features requiring Java 21+ are marked with
// Java 21+) - Structure: Pattern-based organization for interview prep and real-world application
How to Interact with This Folder
For Claude Code:
- Adding New Patterns: Create files in
src/patterns/with the pattern name - Adding Practice Problems: Create markdown files in
practice-sessions/linking to problems - Solution Template: Each solution includes:
- Problem statement & link
- Industry use case
- Multiple approaches with tradeoffs
- Time & space complexity analysis
- Java implementation
Pattern Categories
- Array/String Manipulation: Two Pointers, Sliding Window, Prefix Sum
- Search & Sort: Binary Search, Quick Select, Merge Sort
- Graph/Tree: DFS, BFS, Union Find
- Dynamic Programming: Memoization, Tabulation
- Data Structures: Stack, Queue, Heap, HashMap
Utilities Available
- TreeNode: Binary tree node with helper methods (fromArray, print)
- ListNode: Linked list node with conversion methods (fromArray, toArray)
- GraphNode: Graph node for graph problems
- ArrayUtils: Array operations (print, reverse, min/max, sum, etc.)
- TestHelper: Testing framework with assertions and timing
Running Code
cd DS-Algo-Practice
# Compile all patterns and utilities (outputs to bin/)
javac -d bin -cp src src/patterns/*.java src/utils/*.java
# Run a pattern
java -cp bin patterns.TwoPointers
# Run utilities (to see examples)
java -cp bin utils.TestHelper
java -cp bin utils.ArrayUtilsNote: Compiled .class files go to bin/ directory (hidden in Obsidian)
Quick Start
- Review pattern in
src/patterns/ - Check practice session in
practice-sessions/ - Implement solution
- Compare with provided solutions