字串问题有个通用的滑动窗口算法,时间复杂度O(n2) 其中关键: 窗口大小不固定:构造合适的count来控制窗口的滑动。 窗口大小固定:使用le...
两个指针的问题:通过2个指针同步或不同步的移动,得到结果。时间复杂度一般会降低一个数量级。 适用于排好序的情况 86. Partition Li...
1. 位运算 2. 10进制进位,取余 3. 找规律题目 136. Single Number 利用取余操作的特性相同为0,不同为1。可以得出,...
56. Merge Intervals 融合数组的重复部分。1. 对数组进行排序。 2. 依次判断结果数组中最后一个间隔的重叠情况。 147. ...
查找的题目基本是二分查找,排序一般是快排或归并 快排套路是left = 0, right = x.size() - 1; while(low <...
套路很深,就是遍历全部情况 定义解空间,包含全部解 利用深度优先搜索解空间 Trial,减枝。(避免访问不可能产生解的子空间) 而根据条件有选择...
动态规划: 每一步都进行选择,依赖于子问题的解。通常使用自底向上求解,先求较小的子问题,然后是较大的子问题。 贪心: 每次找出局部最优解。 12...
分治方法 将问题划分成互不相交的子问题 递归地求解子问题 将子问题的解组合起来 动态规划(两个要素:最优子结构、子问题重叠) 应用于子问题重叠的...
Divide: 将问题划分为一些子问题,子问题的形式和原问题一样,只是规模更小。 Conquer:递归地求解出子问题。如果子问题的规模足够小,则...