10 2021 档案
摘要:SB树(SizeBalance树) 每个结点所在子树的结点个数不小于其兄弟的两个孩子所在子树的结点个数。不算重复的key,只算这个树上有多少不同的key。AVL维持了高度,SB树维持了节点的个数。 检查平衡性图解 LL:对X进行右旋 RR:对X进行左旋 LR: 将有问题的孙子节点旋转到整体顶部 Si
阅读全文
摘要:搜索二叉树(BinarySearchTree) 每一颗子树,左边比我小,右边比我大 搜索二叉树一定要说明以什么标准来排序 经典的搜索二叉树,树上没有重复的用来排序的key值 如果有重复节点的需求,可以在一个节点内部增加数据项 搜索二叉树查询key(查询某个key存在还是不存在) 如果当前节点的val
阅读全文
摘要:一致性哈希 分布式存储结构最常见的结构 1.哈希域变成环的设计 2.虚拟节点技术 场景描述 假设,我们有三台缓存服务器,用于缓存图片,我们为这三台缓存服务器编号为0号、1号、2号,现在,有3万张图片需要缓存,我们希望这些图片被均匀的缓存到这3台服务器上,以便它们能够分摊缓存的压力。也就是说,我们希望
阅读全文
posted @ 2021-10-18 17:16
YanickFan
摘要:哈希函数 > out f(in data) 1.输入参数data,假设是in类型,特征:可能性无穷大,比如str类型的参数 2.输出参数out,特征:可能性可以很大,但一定是有穷尽的 3.哈希函数没有任何随机的机制,固定的输入一定是固定的输出 4.输入无穷多但输出值有限,所以不同输入也可能输出相同(
阅读全文
摘要:问题1 数组arr[...]都是正数,问累加和=sum的子数组最长是多长,子数组连续,子串连续,子序列可以不连续 思路: 1.准备一个窗口,定义变量windowSum表示窗口内累加和,len要返回的子数组最大长度 2.windowSum < sum,R右移 3.windowSum > sum,L右移
阅读全文
posted @ 2021-10-12 17:12
YanickFan
摘要:打表法 1.问题如果返回值不太多,可以用hardcode的方式列出,作为程序的一部分 2.一个大问题解决时底层频繁使用规模不大的小问题的解,如果小问题的返回值满足条件1,可以把小问题的解列成一张表,作为程序的一部分 3.打表找规律(重要) 打表找规律 1. 某个问题,输入参数类型简单,并且只有一个实
阅读全文
posted @ 2021-10-11 17:13
YanickFan
摘要:Morris遍历 morris遍历是二叉树遍历算法的超强进阶算法,跟递归、非递归(栈实现)的空间复杂度,morris遍历可以将非递归遍历中的空间复杂度降为O(1)。从而实现时间复杂度为O(N),而空间复杂度为O(1)的精妙算法。morris遍历利用的是树的叶节点左右孩子为空(树的大量空闲指针),实现
阅读全文
摘要:KMP算法 KMP算法要解决的问题就是在字符串(也叫主串)中的模式(pattern)定位问题。说简单点就是我们平时常说的关键字搜索。模式串就是关键字(接下来称它为P),如果它在一个主串(接下来称为T)中出现,就返回它的具体位置,否则返回-1(常用手段)。例如str= "abctabcf" match
阅读全文
posted @ 2021-10-04 13:10
YanickFan

浙公网安备 33010602011771号