常见方法
1. 首尾双指针;
2. 二分法;
3. 动态规划: 利用数组、二维数组有时候优化成一维数组;
4. 递归(包含记忆化递归,尾递归): 二叉树、链表;
5. 并查集;
6. top K(堆);
7. 哈希(通常是空间换时间);
8. 滑动窗口;
9. 回溯法(包含记忆化回溯);
10. 快慢指针(链表的操作);
11. 使用栈(递归的替代)
12. dfs(深度遍历)、剪枝
13. 并查集
14. 空间换时间(使用hash,数组等,包含自身来当作空间)
15. 单调栈
快速排序,堆排序
字符串匹配算法
二叉树的 前中后序迭代遍历, 莫里斯遍历
图相关
洗牌算法、蓄水池采样(382,384,398,470);
位运算
& and
0&0=0
0&1=0
1&0=0
1&1=1
| or
0|0=0
1|0=1
0|1=1
1|1=1
^
0^0 =0
1^0=1
0^1=1
1^1=0