
易之明
作者毫无疑问是一位有真才实学的优秀工程师。论述详实平易、而且富于自省和自我启发。
2022-05-14
6

雨落~紫竹
越到后面 学的越仔细 有意思 看一些专栏就像是在印证自己的想法 感觉和作者共鸣
2022-07-18
5
Geek_8941b4
使用 while 循环回溯,用 new Node(right, down, val) 新建每一层的节点。所以跳表的层数本质上是有多少层就有多少个相同的节点向上叠加。这个代码真的优雅
2022-07-14
1

友
简单的总结:
看了下老师的文字描述,感觉这个deque在我的理解上就是 map是一个不定长数组了 然后里面的每个元素就是一段连续的空间(也是节点数组) 这样就可以拼接起来实现双端队列。
然后对于扩容操作 如果发现某一个端点在map层用完了 那么判断是否超过总容量的百分之五十 如果没有超过证明某一段比较数据集中,另外一点数据较少可以移动到中间来 无需扩容,反之扩容 在map层
其他的主要就是维护其他指针了 保证push pop对应的位置 主要是看不明白cpp代码 准备去用go实现一下
以上是小总结如果有错误希望大家指正
作者回复:说的非常正确;欢迎用golang实现;可以另外提一份PR到我的仓库 https://github.com/wfnuser/Algorithms 哦
2021-12-16
Paul Shan
红黑树每次看的时候都好像明白了,过一段时间就会忘记旋转细节。但是,红黑树确实是工程实现的典范,为了让完全二叉树容纳各种数量的节点,引入了2,3树的概念,也就是保持树的形状为完全二叉树,让树的节点容纳一个或者两个元素来承载变化。有了这个灵活性,平衡二叉树的实现就方便很多,而且也高效不少(半数插入不用调整树的结构)。增加节点的颜色来代替异构节点简化了实现。引入了根节点为黑色和红色节点只出现在左侧的约束,在没有降低红黑树表达功能和性能的前提下,进一步简化实现。
作者回复:总结的很不错
2021-12-23
7

友
红黑看过几个版本 一个是算法4 一个是邓公的 关于旋转操作我看过邓公的那个 connect34方法 我惊了我根本没想到可以这样通过打散然后组合的方式
作者回复:哈哈哈 那我也去看看邓公的课,学习一下
2021-12-23
5

丶
感觉现在自己算法处在了一个瓶颈期,期待算法能力能够有所突破。
作者回复:加油加油;也可以多刷刷题!
2021-12-23

第一装甲集群司令克莱斯特
2022,勉励自己!
编辑回复:哈哈加油,希望能在留言区经常看到你
2022-01-03
2

友
get了新知识
作者回复:加油加油;这个面试常考题,学过之后一定要拿下~
2021-12-28
Paul Shan
BM算法和KMP算法是类似的,都是采用了预处理来加快查询,区别是KMP扫描和匹配方向是相同的,都是从左到右,BM扫描从左到右,匹配从右到左,在字符串差异比较大的情况,可以跳过更多,这也是坏字符算法的作用,但是仅仅凭着坏字符算法处理两个字符串比较接近的情况,复杂度就会退化为O(m*n),这个时候引入KMP类似的子串跳转算法,避免了最差的情况,可以取得O(m+n)。坏字符类似于粗调,只用到了当前不匹配的字符,好后缀类似于精调,用到了不包括当前字符所有已经匹配的字符串。BM和KMP算法和红黑树算法一样,属于我一看就忘的类型,:)。
作者回复:哈哈哈 确实是看了就忘 不过也不太有手写的机会,了解原理我觉得也差不多啦
2022-01-04
7
编辑推荐

看过的人还看了





