Which Algo to Select, Pattern Based Answer
If
Input Array is Sorted Then
- 1. Binary search
- Two pointers
Asked for All permutations/subsets Then
Given a Tree Then
- DFS
- inorder,preorder, postorder
- BFS
Given a Graph Then
- DFS
- BFS
Given a Linked List Then
Recursion is Banned Then
Must Solve In-place Then
- Swap corresponding values
- Store one or more different values in the same pointer
Asked for maximum/minimum of Not-contiguous sub-array/subset/options Then
Asked for top/least K Items Then
Asked for Common Strings Then
- Map
- Trie
Asked Contiguous Sub-string with X Condition
Asked Contiguous Sub-array Sum with X Condition
Next/Prev Greater or Smaller Element
Else
- Map/Set for O(1) time & O(n) space
- Sort input for O(nlogn) time and O(1) space