
数据结构与算法
文章平均质量分 86
曾续缘
关注公众号:曾续缘,领取全部计算机资料。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
哈夫曼树、哈夫曼编码译码完整代码实现
从叶子结点自底向上判断该叶子结点是双亲的左孩子还是右孩子,如果是左孩子,记录0,如果是右孩子,记录1,直到回溯到根结点,翻转这些组合起来的0和1就是哈夫曼的编码。在哈夫曼树的每个分支上标上0或1:结点的左分支标0,右分支标1.把从根到每个叶子的路径上的标号连接起来,作为该叶子代表的字符的编码.。结点的带权路径长度:从根结点到该结点之间的路径长度与该结点的权的乘积.。路径:从树中一个结点到另一个结点之间的分支构成这两个结点间的路径。原创 2024-01-21 10:30:00 · 1703 阅读 · 0 评论 -
散列表-拉链法(链地址法)完整代码实现
通常采用除留余法,通过对KEY进行求余,使得KEY分布在HashTable的数组中,同时为了减少键冲突,除数通常选择为素数。:将大小为 M 的数组中的每个元素指向一条链表,链表中的每个结点都存储了散列值为该元素的索引的键值对。🔥人有两条路要走,一条是必须走的,一条是想走的,你必须把必须走的路走漂亮,才可以走想走的路。(2)由于拉链法中各链表上的结点空间是动态申请的,故它更适合于造表前无法确定表长的情况;这个方法的基本思想就是选择足够大的 M ,使得所有链表都尽可能短以保证高效的查找。拉链法解决冲突的方法。原创 2024-01-20 10:30:00 · 1382 阅读 · 0 评论 -
单调队列-详细讲解(含例题)
顾名思义,单调队列的重点分为「单调」和「队列」。「单调」指的是元素的「规律」——递增(或递减)。「队列」指的是元素只能从队头和队尾进行操作。239 滑动窗口最大值给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值。原创 2024-01-18 08:29:17 · 1629 阅读 · 0 评论 -
状态压缩DP详细讲解
那么对于当前 k 位朋友分好零食得到的结果,等价于,已经将前 k 位小朋友分好零食,再将那 2 包零食分给第 k 位小朋友后得到的结果。,通常一个状态数据就是一个一串0和1组成的二进制数,每一位二进制数只有两种状态,比如说硬币的正反两面,10枚硬币的结果就可以用10位二进制数完全表示出来,每一个10位二进制数就表示了其中一种结果。位小朋友,为了让能拿到最多饼干的小朋友拿到尽可能少的饼干,可理解为缩小贫富差距,求所有可行的零食分发方案中最多饼干那位小朋友最少的一种,为多少。原创 2024-01-17 11:51:14 · 4000 阅读 · 0 评论