![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
水杯爱喝水
这个作者很懒,什么都没留下…
展开
-
hyperscan --- 2 编译
立个flag原创 2022-04-20 18:11:29 · 327 阅读 · 0 评论 -
hyperscan --- 1
介绍Hyperscan 是一个正则表达式引擎,旨在提供高性能、同时匹配多个表达式的能力以及扫描操作的灵活性。hyperscan的工作步骤包含编译模式和扫描模式。hyperscan基本资料官网:Home Page - Hyperscan.io用户手册:Preface — Hyperscan 5.4.0 documentation编译模式串被编译生成不可变模式数据库的, 然后可以使用扫描接口扫描给定模式的目标数据缓冲区,从该数据缓冲区返回任何匹配的结果。...转载 2022-04-20 18:08:23 · 3676 阅读 · 0 评论 -
面试-数据结构-trie树
一、定义及使用场景 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高特点:1、根节点不包含字符,除根节点意外每个节点只包含一个字符。2、从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符串。3、每个节点的所有子节点包含的字符串不相同。4、...原创 2020-12-23 11:03:57 · 127 阅读 · 0 评论 -
面试-数据结构-判断链表中是否有环
答案:可设定两个指针,一个快指针pFast,每次走两步,一个慢指针pslow,每次走一步,然后让这两个指针从头开始遍历整个单向链表,如果链表中有环pFast与pSlow一定会相遇(因为链表没有结尾,没有NULL),否则不会相遇(都遍历到尾结点NULL)int IsExistLoop(Linklist *head){ LinkList *pSlow = NULL; LinkList *pFast = NULL; while(pFast != NULL &&am原创 2020-12-20 21:35:24 · 71 阅读 · 0 评论 -
面试-算法-找出两个链表中第一个相交点
方法一:求len1, len2, 让比较长的链表先走|len1 - len2|,然后让两个指针齐步走,第一次相等的位置即为第一个相交的起点。方法二:原创 2020-12-20 21:25:13 · 100 阅读 · 0 评论 -
面试-算法-判断两个单链表是否相交(转)
一、链表中无环1.hash值法:如 果 两个链表相交,则两个链表就会有共同的结点;而结点地址又是结点唯一标识。因而判断两个链表中是否存在地址一致的节点,就可以知道是否相交了。可以对第一 个链表的节点地址进行hash排序,建立hash表,然后针对第二个链表的每个节点的地址查询hash表,如果它在hash表中出现,则说明两个链表有共 同的结点。这个方法的时间复杂度为:O(max(len1+len2);但同时还得增加O(len1)的存储空间存储哈希表。这样减少了时间复杂度,增加 了存储空间。以链表原创 2020-12-20 21:07:35 · 357 阅读 · 0 评论 -
面试-算法-单链表结点的删除
给定单链表的一个结点的指针,且该结点不是尾结点,此外没有指向其他任何结点的指针,请在O(1)时间内删除该结点。答案:假如给定的指针为p,将p->next的value拷贝给p的value, 然后让p->next = p->next->next, 最后释放p之前的next结点int freeNode(N *node){ int value = 0; N *p = NULL; if (!node) return -1; if原创 2020-12-20 20:18:38 · 163 阅读 · 0 评论 -
面试-算法-找到单链表的倒数第N个元素(转)
一、几种方法1. 遍历法,第一次遍历确定链表总长度,第二次遍历找到倒数第N个元素。需要遍历两次2. N长度队列,遍历链表每个元素入队,队列满时出队,当链表遍历完毕时,队列中队首元素为倒数第N个元素。需要借助额外队列3. 两个距离N个元素的指针。遍历一次,空间复杂度为O(1)接下来,我们让指针P1和P2同时循环右移,每次右移一步,直到指针P2移动到链表的末尾:此时,由于P2指向链表的尾结点,且P1和P2的距离是n-1,因此P1所指的结点就是我们要寻找的链表倒数第n个结点:.原创 2020-12-20 19:50:32 · 771 阅读 · 0 评论 -
面试-算法-单链表逆序输出法
一、有几种方法数组法,遍历链表每个元素存数组,然后逆序遍历数组输出 头插法,遍历链表将遍历到的元素插入链表头,然后重新遍历链表输出 栈输出,遍历链表将每个元素存入栈中,然后将栈元素全部出栈输出 递归法,遍历链表,非未节点则继续递归二、实现 数组法实现核心代码:int array_rever(N *head){ int i = 0; N *p = NULL; N **parray = NULL; int len = 0; ...原创 2020-12-20 16:55:30 · 324 阅读 · 1 评论 -
字符串排列
https://blog.csdn.net/u011537121/article/details/83049501递归实现字符串全排列https://www.cnblogs.com/chailinbo/p/9269210.html字符串全排列按照字典序原创 2019-06-06 16:00:31 · 95 阅读 · 0 评论