If input array is sorted then
If asked for all permutations/subsets then
If given a tree then
If given a graph then
If given a linked list then
If recursion is banned then
If must solve in-place then
If asked for maximum/minimum subarray/subset/options then
If asked for top/least K items then
If asked for common strings then
Else