logo.jpg

三个月算法进阶--day86

回顾 85天的算法学习与练习改变了我的认知,只要肯下功夫去理解,就能真正有收获。整个过程的体验也是由难入易的,开始的不顺利、不舒适、坐在屏幕前

三个月算法进阶--day85

01字典树 最大异或问题 红黑树 二叉查找树,两头黑(叶子结点为黑色的空节点),红不连续(被黑隔开),黑数目(黑高)相同 从根到叶子的最长的可能路径

三个月算法进阶--day84

前缀树、字典树、Trie树(try) 多叉树 实现 from collections import defaultdict class TrieNode: def __init__(self): self.children = defaultdict(TrieNode) self.word = False # 标志,该节点所表示的字符串是否为一个单词 class Trie: def __init__(self): """ Initialize your data structure here. """ self.root

三个月算法进阶--day83

动态连通性 触点,连接,连通分量,查找所在分量的标志符(find),是否属于相同的集合(connected ),归并集合(union) quick-find 以触点为

三个月算法进阶--day82

RMQ问题 Range Minimum/Maximum Quary 区间最值查询问题 k « 1, k « 1 | 1 2 * n, 2 * n + 1 lazy_tag 区间更新,只更新到需要更新的区间的真子集,下次使用到时再消除标记 ST表 稀疏

三个月算法进阶--day81

节点的度 子树的数量 线段树 范围查询,对数时间,二叉树 叶节点包含原始数据,非叶节点包含数组的一个子范围上的聚合信息 构建线段树(区域和) 自下而上 def

三个月算法进阶--day80

补码 负数的补码:负数的绝对值按位取反再+1 计算机中数值用补码存储 按位取反2 ^ n - 1 - x,补码即2 ^ n - x,对2 ^ n取模之后的-x 减去一个数等