topK 问题之为啥 TopK 用的是小根堆?
topK 问题最容易想到的两种解法,无非就是快排和堆。 快排用了分治是思想,根据一趟排序的下标来判断继续在哪边的区间里寻找 topK 则是利用堆的性质,堆顶的元素一定是最大(大根堆)或最小(小根) 今天这篇文章主要是说明一下在堆的解法中: 为啥求...
topK 问题最容易想到的两种解法,无非就是快排和堆。 快排用了分治是思想,根据一趟排序的下标来判断继续在哪边的区间里寻找 topK 则是利用堆的性质,堆顶的元素一定是最大(大根堆)或最小(小根) 今天这篇文章主要是说明一下在堆的解法中: 为啥求...
Goland的 LeetCode 插件可以让我们在 IDE 非常方便地刷题。 下面的配置可以让你更好地利用这个插件 模板的配置但是如果每次都去写一个 Main 函数去本地调试,是很不方便的。 因此我们可以借助单测,把下面我的这个模板贴到插件配置即可:...
Union-Find 算法详解并查集算法,主要是解决图论中「动态连通性」问题的。名词很高端,其实特别好理解,等会解释,另外这个算法的应用都非常有趣。 先解释一下什么叫动态连通性吧。 一、问题介绍简单说,动态连通性其实可以抽象成给一幅图连线。比如下面这...
3 无重复字符的最长子串垃圾的滑动窗口:外层 i, 内层 j 从 i 开始一点点加。结束内层后清理掉整个map 记忆的数据。 实际上不需要完全清理,只需要 i++ 后清理掉 i, j 可以继续++ 41234567891011121314151617...
再刷洛谷试炼场,发现试炼场已经无了。开始以为找不到了,知乎上看到站长的回复才知道真的无了。我是从这个人整理的版本里刷的:https://www.luogu.com.cn/paste/66uuuvdr 用 Go 大概刷了 10 道题之后,放弃洛谷...
知识点:快速幂 高精 负进制 分治P1226 【模板】快速幂||取余运算https://www.luogu.org/blog/costudy/base-2 就看这一篇题解!!! 然后下面备份一下代码: 12345678910int quickPo...
P3383 【模板】线性筛素数https://blog.csdn.net/huang_miao_xin/article/details/51331710 首先看一个关于质数分布的规律: 大于等于5的质数一定和6的倍数相邻。例如5和7,11和13...
Note 用int数组时,我习惯于先把数字相乘存起来,再统一计算进位。 但是用char数组存数时,问题来了,当遇到大数,99*99时,不进位则会在一位存入81+81=162。要知道char只能表示128的数啊。最终结果错误。 洛谷...
背包问题、线性动归、多维动归、技巧与记忆化《背包问题九讲》 背包九讲01\完全\多重\混合 01(每个物品仅1个 总容量V不用装满) 123for i=1..n for j=V..v[i] ans[j]=max(ans[j],ans[...
知识点:【P1182 数列分段Section II答案二分、前缀和】 递推与递归二分台阶问题和数的划分。其实就代表了排列和组合两种情况。排列,和顺序有关。组合,不管顺序只看元素。所以要彻底搞清下面的两个问题! P1192 台阶问题k=2...