sliding window
top k elements
k way merge
topological sort
merge intervals
subsets
fast_slow pointers
dynamic programming
breadth first search
depth first search
modified binary search
miscellaneous
bitwise XOR
two heaps
two pointers
in-place reversal of a linkedlist
cyclic sort