位技巧
判断一个数是不是2的n次方
若一个数x是2的n次方,则由x & (x-1) = 0
向上取整
对a/b向上取整可以使用:(a+b-1)/b
栈的技巧
单调栈
- 柱状图中最大的矩形
- 下一个更大元素 I
- 下一个更大元素 II
面试题 17.21. 直方图的水量
队列的技巧
单调队列
回溯
- 分割回文串
插槽的思想和替换的思想
- 验证二叉树的前序序列化
二分
防止溢出,计算mid采用 left + (right - left)/2 的方式避免
- x 的平方根:使用long防止int相乘溢出
- 猜数字大小
素数?
素数的定义
在初等数学中有一个基本定理,任意一个大于1的自然数,要么本身就是质数,要么可以分解为几个质数之积,这种分解本身,具有唯一性。
为什么在hash表中使用素数
哈希表设计目的就是希望尽量的随机散射,不希望这些在同一列上的元素(也就是会冲突的元素)之间具有关系,所以我们都采用素数作为哈希表的大小,从而避免模数相同的数之间具备公共因数
参考:https://blog.csdn.net/zhishengqianjun/article/details/79087525
动态规划六步
- 看最后一步
- 子问题
- 递推关系
- f(x)表达
- 初始条件和边界
- 计算顺序