![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 92
鸡鸭扣
这个作者很懒,什么都没留下…
展开
-
数据结构与算法:前缀树和贪心算法
一般应用场景如下:两个字符串类型的数组arr1和arr2。求问arr2中有哪些字符是arr1中出现的,有哪些是作为arr1中某个字符串前缀出现的,有哪些字符是出现次数最大的前缀。这种不直接用哈希表是因为哈希表没办法做到统计以xx为前缀的单词共出现了几次。原创 2024-07-16 10:56:33 · 573 阅读 · 0 评论 -
数据结构与算法:图论(邻接表板子+BFS宽搜、DFS深搜+拓扑排序板子+最小生成树MST的Prim算法、Kruskal算法、Dijkstra算法)
/点集,第一个参数是点的编号。和Node类中的value一致。不一定是Integer类型的,要看具体的题,有的题点编号为字母。//边集//点的编号,不一定是Integer类型的,要看具体的题,有的题点编号为字母。//入度//出度//出去的边直接相连的邻居。public ArrayListedges//出去的边in = 0;out = 0;//边上权重this.to=to;原创 2024-02-04 14:07:20 · 1264 阅读 · 0 评论 -
数据结构与算法:基于比较的排序算法:选择、冒泡、插入、归并的动图演示和java代码,排序时间复杂度、空间复杂度、稳定性总结表格
一个排序算法具有稳定性的意思是在排序相同值数据的前后,数据之间的相对顺序不变。譬如我现在有一个待排序列:3 3 1那么前两个3是值相等的,我们现在给这个待排序列打上标记:3① 3② 1排完序后这个序列依旧是3①在3②的左边,那么我们就称这个排序算法具有稳定性。目前在基于比较的排序算法中,没有找到时间复杂度为O(N*logN) ,空间复杂度为O(1),又稳定的排序。原创 2023-12-27 01:38:55 · 1134 阅读 · 0 评论 -
数据结构与算法:二叉树(寻找最近公共祖先、寻找后继节点、序列化和反序列化、折纸问题的板子和相关力扣题目)
可以层序遍历每个节点时用个HashMap存储该结点和其直接父节点的信息。然后从p开始溯源,将所有的父节点都添加到一个HashSet集合里。然后从q开始溯源,每溯源一步看是否在set集合中,在的话就返回。可以看到效率很低,12ms,击败7.89%使用 Java 的用户。原创 2024-02-17 01:55:49 · 968 阅读 · 0 评论 -
数据结构与算法:二叉树(前中后三种遍历的递归和非递归原理和板子、判断是否为搜索二叉树BST、完全二叉树、满二叉树、平衡二叉树)
很有意思的一个全新的角度:从递归序去看前中后三种遍历。首先来看一颗二叉树:和其遍历的函数那么这颗树的递归序便是1,2,4,4,4,2,5,5,5,2,1,3,6,6,6,3,7,7,7,3,1可以看到,任何一颗二叉树的节点的递归序实际上都会经过其自身三次。前序遍历、中序遍历、后续遍历就是在这三次中选取不同时候进行处理而已。譬如前序遍历便是经过自身第一次时就进行处理,这里假设为简单打印。那么就能很快地得到前序遍历的顺序为:1,2,4,5,3,6,7。原创 2024-02-13 19:54:24 · 1059 阅读 · 0 评论