This repo is a personal Java algorithms/workbook repository: a flat collection of standalone implementations of classic algorithms and data structures, mostly oriented around graph algorithms, dynamic programming, flow/matching, string algorithms, and competitive-programming utilities.
- Language: Java.
- Structure: mostly a single-directory repository, with many individual
.javafiles rather than a packaged library layout.
-
Shortest paths / graph traversal
Dijkstra.javaBellmanFordNegativeCycle.javaFloodFill.javaEulerianPath.javaMinimumCycle.java
-
Graph data structures / helpers
Graph.javaEdge.javaEdgeWeightedGraph.java
-
Flow / matching / cuts
Dinic.javaFordFulkerson.javaFlowEdge.javaFlowNetwork.javaMinCostMaxFlow.javaMaxFlowPushRelabel.javaHopcroftKarp.javaHungarian.javaMaxBipartiteMatching.javaMinimumVertexCut.java
-
Dynamic programming / classic problems
Knapsack.javaKnapsack01.javaLIS.javaLongestDecreasingSubsequences.javaLongestPath.javaJobProcessing.java
-
Strings / trees / other classic algorithms
BWT.javaTrieSET.javaLeastCommonAncestor.javaPrintPostOrderFromPreOrderInOrder.javaWordLadder.java
-
Utilities / competitive programming I/O
EdxIO.javaFasterScanner.javaWriter.javaMain.javaMainUsaco.java
There’s also a math/ directory, with some additional grouped math-related code.