计算机 · 2021年9月19日 0

算法复习

dp

  1. 最大连续子序列和
  2. 最长上升子序列 维护一个递增的栈,遍历元素是,如果比栈顶的元素大,就直接入栈,否则就用新的元素去替换栈里面比新元素大的最小元素.在栈中查找这个元素时使用二分,从而使得算法整体复杂度为O(nlogn)
  3. 最长公共子序列
  4. 背包问题

背包问题

https://zhuanlan.zhihu.com/p/93857890
https://www.cnblogs.com/frankchenfu/p/6445843.html

  1. 01背包
    给定一组物品,每种物品都有自己的重量和价格(“性价比”一般不相同),但是都只可以选一个(一个物品选一次)。在限定的总重量内,我们如何选择,才能使得物品的总价格最高。
  2. 完全背包
  3. 多重背包

找第k大数

https://blog.csdn.net/a3192048/article/details/82055183

动态维护查找中位数

维护一个最大堆和一个最小堆

数据结构

https://blog.csdn.net/JTY541464341/article/details/105655827

  1. 堆的性质
  2. 堆的删除定点和插入元素
  3. 建立堆

树堆