参考 https://www.geeksforgeeks.org/binary-indexed-tree-or-fenwick-tree-2/ 实际问题(简单记,想快速知道数组的前缀和,同时数组的修改频繁,用树状数组,使得这两种操作都变成O(logn),两边查询的树状数组可以相当于线段树的功能) We have an array arr[0 . . . n-1]. We would like to
最近更新
按时间写下的文章
区间树
参考: https://www.geeksforgeeks.org/interval-tree/ https://stackoverflow.com/questions/17466218/what-are-the-differences-between-segment-trees-interval-trees-binary-indexed-t#:~:text=Segment%20tree%20st
线段树
参考: https://zh.wikipedia.org/wiki/%E7%B7%9A%E6%AE%B5%E6%A8%B9 https://www.geeksforgeeks.org/segment-tree-set-1-sum-of-given-range/ 原文我觉得挺不错的,暂时觉得先不翻译。 链接 实际问题(简单记,想快速知道数组的某一区间和,同时数组的修改频繁,使得这两种操作都变成O(l
The Humble Programmer by Edsger W. Dijkstra 伟大的 Dijkstra
原文 https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html 原文很长,这里摘录总结的内容。 摘录 让我结束发言。自动计算机已经陪伴我们四分之一个世纪。它们作为工具的能力对我们的社会产生了巨大的影响,但就这种能力而言,它们的影响只是我们文化表面上的一个涟漪,而与之相比,它们在人类文化史上前所未有的智力挑战能力方面将产生更深
银行家算法
一句话 当一个进程申请使用资源的时候,银行家算法通过先试探分配给该进程资源,然后通过安全性算法判断分配后的系统是否处于安全状态,若不安全则试探分配作废,让该进程继续等待。 那么此时会有一个问题,如何判断系统是否处于安全状态?算法流程将用下面一张图来表示。 一张图 首先是银行家算法中的进程: 包含进程Pi的需求资源数量(也是最大需求资源数量,MAX) 已分配给该进程的资源A(Allocat
猫抓老鼠的简单讨论
两个问题以及其解答 问题一:有一个圆形的操场,四周都是墙壁,无法逾越。操场里面有一只老鼠和一只猫,猫在努力的捉老鼠。如果老鼠和猫的奔跑速度一样,那么猫一定能够追到老鼠吗? 正确的结论正是猫永远也追不上老鼠。 我们可以通过数学证明证明出,只要老鼠时刻沿着猫的位置到圆心的位置的连线的垂直方向跑,可以证明出永远也不会追上。数学证明见https://zhuanlan.zhihu.com/p/807010
双蛋问题以及更主要的其更通用化且有用的问题的解
题目:LeetCode 887. 鸡蛋掉落 你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。 每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。 你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。 每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层
GC的三种基本实现方式和优缺点
参考: https://blog.csdn.net/longzw0/article/details/66970832 代码的未来–松本行弘 https://medium.com/@NTulswani/understanding-and-implementing-a-garbage-collector-a19afb1bc418, 标记清除js代码简单实现 将内存管理,尤其是内存空间的释放实现自动化,
人要多读书
天下没有谁生而知之,都是学而知之。人的学问哪来,您记住,无论谁啊,都算上, 大思想家,大文学家,大作家,也是俩字,记问之学。一个就是看书,《史记》上有这么一句话我把它记下来了,《三国志》有这么句话我把它记下来了。记,还有就是问。这我不懂,哎呦先生您看,这怎么回事。先生告诉你了啊,这个如何如何。所有人的学问,都是这么来的。记问之学,所以要广览多读。 至于发明创造,也需要了解已有知识,还是需要记 与
实现KMP算法
转载自王争老师数据结构与算法之美字符串匹配基础下https://time.geekbang.org/column/article/71845 概述 字符串匹配算法,可以分为单模式串匹配算法,和多模式串匹配算法,单模式串匹配算法包括了BF(暴力匹配O(m*n),但因为可以及早停止,实际感觉并没有很差)、RK(O(n),n为主串长度,利用哈希加速,哈希函数要取好,不要超过int的最大值,遍历一遍主串就