![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 55
PayYingJAY
这个作者很懒,什么都没留下…
展开
-
LeetCode 30.串联所有单词的子串
题目:给定一个字符串 s 和一些 长度相同 的单词 words 。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符 ,但不需要考虑 words 中单词串联的顺序。示例 1:输入:s = "barfoothefoobarman", words = ["foo","bar"]输出:[0,9]解释:从索引 0 和 9 开始的子串分别是 "barfoo" 和 "foobar" 。输出的顺序不重要, [9,原创 2022-01-15 00:53:57 · 86 阅读 · 0 评论 -
两张图理解迪杰斯特拉算法
1.思想:迪杰斯特拉最最朴素的思想就是按长度递增的次序产生最短路径。即每次对所有可见点的路径长度进行排序后,选择一条最短的路径,这条路径就是对应顶点到源点的最短路径。2.限制:图G中不存在负权值的边3.理解:看到两张图对于这个算法的理解有帮助:...原创 2021-12-02 11:30:13 · 543 阅读 · 0 评论 -
DS二叉树——二叉树之父子结点
题目描述给定一颗二叉树的逻辑结构如下图,(先序遍历的结果,空树用字符‘0’表示,例如AB0C00D00),建立该二叉树的二叉链式存储结构。编写程序输出该树的所有叶子结点和它们的父亲结点输入第一行输入一个整数t,表示有t个二叉树第二行起,按照题目表示的输入方法,输入每个二叉树的先序遍历,连续输入t行输出第一行按先序遍历,输出第1个示例的叶子节点第二行输出第1个示例中与叶子相对应的父亲节点以此类推输出其它示例的结果样例输入3AB0C00D00AB00C00原创 2021-10-28 10:41:04 · 286 阅读 · 0 评论 -
KMP算法
KMP 算法是一个快速查找匹配串的算法,它的作用其实就是本题问题:如何快速在「原字符串」中找到「匹配字符串」。KMP 算法的复杂度为 O(m + n)。KMP 之所以能够在 O(m + n)复杂度内完成查找,是因为其能在「非完全匹配」的过程中提取到有效信息进行复用,以减少「重复匹配」的消耗。可以通过举 ???? 来理解 KMP。1. 匹配过程在模拟 KMP 匹配过程之前,我们先建立两个概念:前缀:对于字符串 abcxxxxefg,我们称 abc 属于 abcxxxxefg 的某个原创 2021-09-20 01:04:39 · 180 阅读 · 0 评论 -
正则表达式 与 二分查找
记一下最近遇到的1.正则表达式1.1元字符元字符是构造正则表达式的一种基本元素。. :匹配除换行符以外的任意字符w:匹配字母或数字或下划线或汉字s:匹配任意的空白符d:匹配数字b:匹配单词的开始或结束^:匹配字符串的开始$:匹配字符串的结束匹配有abc开头的字符串:abc或者^abc匹配8位数字的QQ号码:^dddddddd$匹配1开头11位数字的手机号码:^1dddddddddd$1.2重复限定符*:重复零次或更多次+:重复一次或更多次..原创 2021-08-22 00:19:32 · 87 阅读 · 0 评论