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:

  1. Adding New Patterns: Create files in src/patterns/ with the pattern name
  2. Adding Practice Problems: Create markdown files in practice-sessions/ linking to problems
  3. 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.ArrayUtils

Note: Compiled .class files go to bin/ directory (hidden in Obsidian)

Quick Start

  1. Review pattern in src/patterns/
  2. Check practice session in practice-sessions/
  3. Implement solution
  4. Compare with provided solutions