先想暴力解法,即用代码模拟出题目描述的过程。

    1. 可以暴力解,则对已有的暴力解法进行简化
      1. 时间简化:滑动窗口、贪心、二分
      2. 空间简化:位运算(如用一个2位的二进制数描述四种可能的字符,而一个int可以表示16个这样的字符)、反序(比如合并两有序数组,其中一个数组有足够的空间装下所有元素,此时可以从大往小找放在末尾,避免覆盖有效数据)
    2. 不可以暴力解
      1. 是需要全局遍历的问题:dfs、bfs、回溯
      2. 可以拆分成规模更小的同类子问题:动态规划、记忆化递归、分治