求解字符串中最长连续子串长度,这类问题一般通过一个滑动窗口就能在O(N)的时间复杂度下求解。先通过一张图来观察下窗口滑动的过程: 上图的求解过程展示中,窗口从左至右不断扩张/滑动。当窗口触达字符串末尾字符时运算结束,窗口的宽度为最终结果。初始窗口的宽度为1,我们不断的通过向当前窗口覆盖的子串后面追加 ...
分类:
编程语言 时间:
2020-07-20 23:00:15
阅读次数:
128
[toc] 注:dp可能并不是求解该这些问题的最优算法,这里只是做一个dp 算法的简介。 概念 定义:假设现有一个 string = 最长连续子串:要求在原序列中连续,比如 str = 、`fghijklm`都是valid substring 最长连续子序列:相对顺序在原序列中不变即可;比如 str ...
分类:
其他好文 时间:
2020-02-02 23:19:38
阅读次数:
89
本题是比较典型的滑动窗口问题 这类问题一般通过一个滑动窗口就能在O(N)的时间复杂度下求解 本题可以先退化成考虑K=0的情况,此时题目就变成了求解字符串中最长连续子串长度问题了 我们先可以通过这个特例先了解一下滑动窗口的求解过程 上图的求解过程展示中,窗口从左至右不断扩张/滑动,当窗口触达字符串末尾 ...
分类:
编程语言 时间:
2020-01-22 11:07:06
阅读次数:
95
输入一个数值序列numbers,输出某一个连续子串长度,满足小于给定乘积上限k。 这里有两种解法,其一为O(N^2),其二基本为O(N) ...
分类:
其他好文 时间:
2019-08-31 21:31:48
阅读次数:
49
在计算机科学中,最长回文子串或最长对称因子问题是在一个字符串中查找一个最长连续子串,这个子串必须是回文。例如“banana”最长回文子串是“anana”。最长回文子串并不能保证是唯一的,例如,在字符串“abracadabra”,没有超过三的回文子串,但是有两个回文字串长度都是三,是“ada”和“ac ...
分类:
编程语言 时间:
2018-03-24 14:58:28
阅读次数:
244
题目描述:求一个字符串的不含重复字符的最长连续子串的长度; 思路: 1. 使用一个哈希表保存字符出现的位置; 2. 使用left和right分别表示子串的最左和最右字符的下标; 3. 遍历字符串,如果当前字符在哈希表中并且当前字符在哈希中的位置大于left,表明left和right之间存在和righ ...
分类:
编程语言 时间:
2017-12-08 01:21:15
阅读次数:
166
分析:记数组中最长的连续子串长度为maxlen(数值上连续,位置不一定连续,如2134,最长为3).首先可以证明,n-maxlen次操作可以满足条件,如最长子串最后一个为x<n,则把x+1移到最后,如果是x=n,记子串的第一个为y,把y-1移到最前,每次操作后最长连续子串长度+1,故可以满足条件.接 ...
分类:
编程语言 时间:
2017-06-21 21:17:53
阅读次数:
266
4527: K-D-Sequence Description 我们称一个数列为一个好的k-d数列,当且仅当我们在其中加上最多k个 数之后,数列排序后为一个公差为d的等差数列。 你手上有一个由n个整数组成的数列a。你的任务是找到它的最长连续子 串,使得满足子串为好的k-d数列。 我们称一个数列为一个好 ...
分类:
其他好文 时间:
2017-04-06 11:44:59
阅读次数:
279
题意: 求多个串<=10的最长连续子串 一个串建SAM,然后其他串在上面走 每个状态记录所有串在这个状态的公共子串的最小值 一个串在上面走的时候记录与每个状态公共子串的最大值,注意出现次数向父亲传递,一个状态能到达说明了Suffix Link指向的状态可以取到最大子串,这一步对val后基数排序然后倒 ...
分类:
其他好文 时间:
2017-02-07 22:29:52
阅读次数:
246
bzoj2096[Poi2010]Pilots 题意: 给一个序列和一个最大值,要求找一个最长连续子串,使里面任意两个数相差不超过这个最大值。序列大小≤3000000 题解: 用两个单调队列,分别维护当前区间的最大值和最小值,然后用双指针法。 代码: 20160829 ...
分类:
其他好文 时间:
2016-09-03 22:33:09
阅读次数:
229