Language
|Pattern
Backtracking
Trees / Graphs
void backtrack( int index, std::vector<int>& path, std::vector<std::vector<int>>& answer ) { if (BASE_CASE) { answer.push_back(path); return; } for (int choice : choices) { path.push_back(choice); backtrack(NEXT_INDEX, path, answer); path.pop_back(); } }