DFS notes

When to use dfs? Generally speaking, there are several situations as follows: Combination Sample answer: combination sum2  Key Point: 1) sorting before dfs 2) use Index to help remove duplicates 3) consider out of boundary question whenever using arrays Use DFS without recursion: Use STACK(Every time pop an item, push the it’s children, thus accomplish DFS) Stack FILO … More DFS notes

Breadth First Search

Template: If a layer traversal is needed, add a “for” loop. (Attention that queue.size will change). If in a graph, we need a hash set to store the statue of node ( visited or not), and check set.contains(child) before offerring it into queue.