1. 内存不够怎么办?(比如说内存不足以讲input全部加载)
    如果可以降低空间复杂度,就试图降低空间复杂度
    否则就用特殊算法 比如 外排序(这就涉及到K路归并)
  2. 本来这道题是不需要考虑duplicate输入的 现在需要考虑了 怎么办? (就是说输入有duplicates 但是不允许输出有duplicates)
    如果不需要考虑输入有duplicates,就正常的去解。如果需要考虑输入有duplicates,那么我们需要通过预排序+指针来避免duplicates
  3. 本来这道题是只需要输出一个满足的结果 现在需要输出所有满足条件的结果 怎么办?
    只输出一个结果的话 可能是DFS/BFS(找到了就走下一步 根部不管是否还有其他解) 但是输出所有的结果 可能是backtracking之类的
  4. 本来这道题让你输出一个数字(比如最长最短的路径)即可 现在需要你输出整条路经
    如果是这种情况的话 那很可能前后是两种不同的算法。
    比如说 只输出路径的长度 那么就可能是DP,但是要输出整条路径 就可能是DFS/backtracking之类的。

LeetCode中常见的follow ups:
1 从一维array到二维matrix
2 使用O(1)的空间复杂度(n->1)
3 如何多线程的解决这个问题
4 从固定数量的输入(array, list etc.)到不固定数量的input(data stream)
5 最多只遍历一遍(而不是想遍历几遍就几遍)one pass vs several passes