LeetCode 452 453 454 455 456 459 1 编程题 【LeetCode 452】用最少数量的箭引爆气球 在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。 ...
分类:
编程语言 时间:
2020-01-02 14:13:30
阅读次数:
117
public class KMPAlgorithm { public static void main(String[] args) { String str1 = "BBC ABCDAB ABCDABCDABDE"; String str2 = "ABCDABD"; int[] kmpTable ...
分类:
编程语言 时间:
2019-12-29 23:23:22
阅读次数:
100
看了好久才懂,我好菜啊…… 题意:给两个字符串 $a$ 与 $b$,对于 $q$ 次询问,每次询问给出一个 $x$,求存在多少个位置使得 $a$ 从该位置开始的后缀子串与 $b$ 匹配的长度恰好为 $x$。 这题可以 Hash+二分 $O(n\log n)$ 过,还有一个高端做法是扩展 KMP(然而 ...
分类:
其他好文 时间:
2019-12-29 14:49:47
阅读次数:
69
我最近复习一道困难程度的算法题,发现了许多有趣之处。在借鉴了他人解法后,发现从最简单的情况反推到原题是一种解锁新进阶的感觉。从递归到动态规划,思维上一步一步递进,如同一部跌宕起伏的小说,记录下来和诸君共赏之。 题目如下: 这是一道关于字符串匹配的问题,其中匹配字符串里面可能含有两种特殊符号「.」和「 ...
分类:
编程语言 时间:
2019-12-28 22:57:05
阅读次数:
95
#include<string> #include<stdio.h> #include<iostream> #include<vector> using namespace std; string s1,s2; vector<int>f; void init() { f[0] = 0; f[1] = ...
分类:
编程语言 时间:
2019-12-27 23:26:10
阅读次数:
92
For Example: # sqlplus / as sysdbaSQL> START sqlhc.sql T djkbyr8vkc64h ...
分类:
数据库 时间:
2019-12-26 17:57:37
阅读次数:
108
typedef struct { char str[MAX]; int length; }SString; BF算法 int Index(SString *S, SString *T) { int i, j; i = 1; j = 1; while (i<=S->length&&j<=T->leng ...
分类:
编程语言 时间:
2019-12-23 22:46:23
阅读次数:
133
上板子 KMP for(int i=1;i<len;i++){ while(u>0&&s[u]!=s[i]){ u=Pi[u]; } if(s[u]==s[i]){ u++; } Pi[i]=u; } KMP Z Algorithm for(int i=1,l=0,r=0;i<len;i++){ i ...
分类:
其他好文 时间:
2019-12-21 10:10:44
阅读次数:
76
这个算法主要靠画图理解,于是学习的时候画了不少图,正好写篇博客。 扩展KMP能解决的问题: 给定两个串$S,T$,对于S的每一个后缀$S[i...n]$求和$T$的$LCP$。 设$exnxt_i$表示后缀$S[i...n]$求和$T$的$LCP$,我们要做的就是求所有$exnxt_i$。 我们先对 ...
分类:
其他好文 时间:
2019-12-20 18:58:27
阅读次数:
89
后缀自动机 (suffix automaton, SAM) 是一个能解决许多字符串相关问题的有力的数据结构。(否则我们也不会用它) 举几个例子,以下的字符串问题都可以在线性时间内通过 SAM 解决 1.在另一个字符串中搜索一个字符串的所有出现位置。(诶?KMP好像能做) 2.计算给定的字符串中有多少 ...
分类:
其他好文 时间:
2019-12-17 20:35:36
阅读次数:
102