logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【数据结构与算法】从左到右快速幂和从右到左快速幂

从左到右快速幂和从右到左快速幂算法通过将幂次的二进制表示与逐步的平方、乘法操作结合起来,实现了高效的幂运算。无论是从左到右还是从右到左的实现,都大大减少了计算所需的时间,特别是在需要处理大数幂运算的场景下。掌握这种算法,对提升计算效率具有重要意义。

文章图片
#算法
【数据结构与算法】使用哈夫曼编码压缩文本

但是我们可以用位来存储,根据不同的字符集,原本一个字符需要7位,8位,16,位甚至32位,现在可以降低出现频率更高的字符的编码长度,那么反映在需要压缩的文本中,压缩比就很可观了。哈夫曼编码不但能够应用于文本数据的压缩,还能够拓展至其他类型的数据压缩领域,例如图像、音频以及视频文件,其核心在于用更短的编码映射原本出现频率高但编码长度大的数据,例如用8bit表示一个像素,我们可以把出现最频繁的压缩为4

文章图片
#python#霍夫曼树#算法
【数据结构与算法】理解二叉搜索树(BST)

本文深入探讨了二叉搜索树(BST)这一重要的数据结构。详细介绍了 BST 的定义及特性,包括节点值的大小关系和子树的性质。阐述了其重要性质及优势,如高效的查找、快速的插入和删除操作,并说明了不同情况下的操作方式。通过示例展示了 BST 的插入和删除过程,还指出了性能退化这一关键问题,分析了其原因如有序插入或删除、极端数据分布等,并通过举例加以说明。

文章图片
#算法#数据结构
leetcode787. K 站中转内最便宜的航班——优先队列优化的Dijkstra算法+剪枝

继续思考,发现dijkstra算法找到的是最优路径,但是其中转节点可能很多,而真正的路径只可能在中转节点比最优路径少的路径里,其他中转节点多于最优路径的路径完全可以剪枝,因为他们的费用不可能更低。按照这个思路,只需要维护一个每个节点的最小中转数,任何多于最小中转数的路径都可以剪枝,因为对于每一个被剪枝的路径来说,在其之前都已经有至少一条路径价格比它低的同时中转数还要小于它。对于k的限制,我想到可以

文章图片
#算法#剪枝#leetcode
【python】Python 高阶函数map、reduce、filter、sorted

高阶函数(Higher-Order Function)是指能够接收函数作为参数,或者将函数作为返回值的函数。Python 内置了多种高阶函数,它们为我们提供了编写简洁代码的能力。lambda高阶函数为我们提供了一种优雅的方式来处理可迭代对象。通过合理运用mapreducefilter和sorted,我们可以编写出更加简洁和高效的 Python 代码。lambda表达式的配合使用,更是让代码显得简洁

文章图片
#python#开发语言
【数据结构与算法】如何构建最小堆

最小堆,作为一种独特且重要的数据结构,它是一种特殊的二叉树。在这种二叉树中,有一个关键的规则:每一个父节点所存储的值,都必然小于或者等于其对应的子节点的值。这一规则确保了根节点总是承载着整个堆中的最小数值。1/ \3 2在这个例子中,根节点的 1 毫无疑问是整个堆中数值最小的元素。

文章图片
#数据结构
到底了