位技巧

判断一个数是不是2的n次方

若一个数x是2的n次方,则由x & (x-1) = 0

向上取整

对a/b向上取整可以使用:(a+b-1)/b

栈的技巧

单调栈

  1. 柱状图中最大的矩形
  2. 下一个更大元素 I
  3. 下一个更大元素 II
    面试题 17.21. 直方图的水量

队列的技巧

单调队列

回溯

  1. 分割回文串

插槽的思想和替换的思想

  1. 验证二叉树的前序序列化

二分

防止溢出,计算mid采用 left + (right - left)/2 的方式避免

    1. x 的平方根:使用long防止int相乘溢出
    1. 猜数字大小

素数?

素数的定义

在初等数学中有一个基本定理,任意一个大于1的自然数,要么本身就是质数,要么可以分解为几个质数之积,这种分解本身,具有唯一性。

为什么在hash表中使用素数

哈希表设计目的就是希望尽量的随机散射,不希望这些在同一列上的元素(也就是会冲突的元素)之间具有关系,所以我们都采用素数作为哈希表的大小,从而避免模数相同的数之间具备公共因数
参考:https://blog.csdn.net/zhishengqianjun/article/details/79087525

动态规划六步

  1. 看最后一步
  2. 子问题
  3. 递推关系
  4. f(x)表达
  5. 初始条件和边界
  6. 计算顺序

文章作者: 彭峰
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 彭峰 !
 上一篇
2021-05-02 彭峰
下一篇 
2021-05-02 彭峰
  目录