Hopcroft-Karp finds maximum matching in by finding multiple augmenting paths per iteration using BFS layering. First, BFS finds the shortest augmenting path length. Then, DFS finds all augmenting paths of that length.
This is faster than Kuhn for large graphs but requires more code. Use it when and is too slow. Most competitive programming problems are small enough for Kuhn.
Space complexity is for the data structures used.