![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
天才在此
这个作者很懒,什么都没留下…
展开
-
Java大根堆(修订版)
【代码】Java大根堆(修订版)原创 2023-08-04 21:36:25 · 75 阅读 · 1 评论 -
Java实现最大堆,包括查找值所在节点坐标、删除任一节点等方法
【代码】Java实现最大堆,包括输出最大值、查找值所在节点坐标、删除任一节点等方法。原创 2023-07-30 19:57:44 · 230 阅读 · 1 评论 -
纪念第一次C++手写DFS一遍AC
DFS回溯法求1~n全排列原创 2023-03-11 18:21:10 · 52 阅读 · 0 评论 -
单链表的Java简单实现
单链表的Java简单实现最近在研究单链表相交的问题时,为验证思路的正确性,使用java简单实现了单链表,包括增删改查和判断是否有环及解环、成环等方法。原创 2023-02-09 13:28:37 · 64 阅读 · 0 评论 -
判断两个单链表是否相交(返回交点)的解法(时间复杂度O(N),空间复杂度O(1))
判断两个单链表是否相交(返回交点)的解法(时间复杂度O(N),空间复杂度O(1))两个单链表相交,可以理解为(即)一个单链表的某一结点指向了另一单链表的某一结点。当我们实现判断单链表是否有环的方法后(利用快慢指针判断单链表是否有环),一个自然的想法便是,先将两个单链表分别在首个环节点处拆开(没有环则是在末尾拆开等效于没有拆),再将其中一个单链表首尾相接,然后从另一个单链表的头结点开始判断其是否有环,如有则两个单链表相交。原创 2023-02-08 19:00:17 · 119 阅读 · 0 评论 -
哈夫曼编码原理精炼解析
哈夫曼编码精炼解析1.为了使每个字符编码不会是另一个字符编码的前缀,哈夫曼编码利用自底向上生成二叉树,这样使得每个字符都是叶节点,从根节点到叶节点的路径上不会有其他字符节点,使用0、1标注左右而表示的路径记为该叶节点的哈夫曼编码。2.为了使出现次数较多的字符出现在较浅层即离根节点较近以获得较短路径,自底向上生成二叉树的时候将出现次数最少的两个字符(或次数代表)组合在一起形成一个次数代表(树)。3.在由满二叉树转换为哈夫曼树的过程中,总编码长度是减小的。原创 2023-02-03 13:48:20 · 360 阅读 · 0 评论 -
KMP算法原理精简解析
KMP算法原理精简解析KMP是解决字符串匹配问题的算法,用其三位发明者的名字首字母命名。KMP原理很简单,但被网络上很多不理解却强行理解的人弄的很复杂。原创 2023-02-02 21:59:57 · 150 阅读 · 0 评论 -
利用快慢指针判断单链表是否有环(返回first环节点)解法(附在文末)的原创证明及思考
利用快慢指针判断单链表是否有环(返回first环节点)解法(附在文末)的原创证明及思考结论:为不遗漏每一个结点,快指针只能一次两步,慢指针只能一次一步。原创 2023-01-29 12:34:19 · 207 阅读 · 0 评论