![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 86
北顾.岛城
半吊子技术,半吊子人生
展开
-
【LeetCode题目拓展】第207题 课程表 拓展(拓扑排序、Tarjan算法、Kosaraju算法)
初看这个拓展时,我的想法是在有向图里找环的方式来实现,比如找到整个有向图中包含节点数目最多的环,判断这个数目是否超过了该同学最多能同时上课的数量。对于第二个图,两个环共用了一个节点,此时只计算一个环的节点数并不能满足题目的需求。求解有向图中的强连通分量问题一般有两种算法,tarjan算法和kosaraju算法,此处不赘述两种算法的细节,感兴趣的可以自行搜索,此处只把各自解法列在下方。根据这种思路,我们需要求有向图中规模最大的连通分量的节点数,并且把它和学生最大同时上课数进行比较,就可以得到答案了。原创 2023-12-12 22:56:53 · 196 阅读 · 1 评论 -
LeetCode 773 LintCode 941 滑动谜题 八数码问题 单向bfs+双向bfs+A*算法+IDA*算法解法汇总
文章目录@[toc]一、 细节说明二、 具体解法1. bfs法1.1 单向bfs(1)hash法(2)康托展开1.2 双向bfs(1)hash法(2)康托展开2. A*算法2.1 使用位置不同块数作为估计函数(1)hash法(2)康托展开2.2 使用曼哈顿距离作为估计函数(1)hash法(2)康托展开3. IDA*算法3.1 使用位置不同块数作为估计函数3.2 使用曼哈顿距离作为估计函数自己实现的LeetCode相关题解代码库:https://github.com/Yuri0314/Leetcode自原创 2020-09-14 19:11:42 · 737 阅读 · 0 评论 -
LeetCode 94 144 145 LintCode 66 67 1783 二叉树的前中后序遍历所有解法总结(史上最全分类总结)
文章目录@[toc]1. 简单说明2. 解法分析2.1 递归法2.2 非递归法2.2.1 一般迭代法2.2.1.1 中序遍历2.2.1.2 前序遍历2.2.1.3 后序遍历2.2.2 统一模板法2.2.2.1 设置结点访问标志2.2.2.2 null值区分2.2.3 Morris遍历法2.2.3.1 中序遍历2.2.3.2 前序遍历2.2.3.3 后序遍历2.2.3.3.1 前序遍历反向2.2.3.3.2 链表逆序打印自己实现的LeetCode相关题解代码库:https://github.com/Yuri原创 2020-08-11 23:08:00 · 347 阅读 · 1 评论 -
Leetcode 155 Min Stack 最小栈 解法分析及相关题目衍生获取队列最大值
文章目录@[toc]题目要求解法分析辅助栈法链表定义法相关题目——O(1)时间获取队列最大值自己实现的LeetCode相关题解代码库:https://github.com/Yuri0314/Leetcode题目要求设计一个支持push ,pop,top操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:["MinStack","原创 2020-08-06 21:56:38 · 166 阅读 · 1 评论 -
Leetcode 128 longest-consecutive-sequence 最长连续序列 Hash法及并查集解法
文章目录题目要求1. Hash法1(官方解法)2. Hash法2(累积长度)3. Hash法3(双向查找动态删除)4. 并查集法1(使用双Map模拟并查集)5. 并查集法2(双数组模拟并查集,Map记录数值到数组索引的映射)总结题目要求给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。看到这道题我首先的思路是对数组先进行排原创 2020-08-06 20:40:19 · 194 阅读 · 0 评论