码迷,mamicode.com
首页 >  
搜索关键字:线性复杂    ( 29个结果
【字符串】387. 字符串中的第一个唯一字符
题目: 解答: 方法一: 线性时间复杂度解法这道题最优的解法就是线性复杂度了,为了保证每个元素是唯一的,至少得把每个字符都遍历一遍。 算法的思路就是遍历一遍字符串,然后把字符串中每个字符出现的次数保存在一个散列表中。这个过程的时间复杂度为 O(N)O(N),其中 NN 为字符串的长度。 接下来需要再 ...
分类:其他好文   时间:2020-05-03 20:16:06    阅读次数:49
136. Single Number
"https://leetcode.com/problems/single number/" 给定一个非空数组,除了有一个元素外,其他元素出现了两次,找出那个出现了1次的数 要求:线性复杂度,且不能使用额外内存空间 分析: 使用 异或 XOR ,因为 a ^ a=0,这样就可以将里面相同的两两进行抵 ...
分类:其他好文   时间:2020-04-02 22:57:28    阅读次数:85
【模板】后缀自动机
核心思想: 通过巧妙的设计使得我们能用一个DAG和树的复合结构来在线性复杂度内存储一个串的$n^2$个子串的信息。 定义: 1.后缀自动机的结构类似于AC自动机,每个点表示一个endpos等价类(子串结束位置的集合,以下简称为状态),边同AC自动机中的边。即后缀自动机上从根到一个点有若干条路径,这些 ...
分类:其他好文   时间:2020-02-10 22:47:35    阅读次数:84
KMP算法
KMP算法 KMP是一种字符串匹配算法。此算法的核心在于$kmp$数组以及它的求法。 (以下约定字符串下标从$1$开始) $\bm{kmp}$数组 定义$kmp$数组:$kmp_{a,i}$表示字符串$a$的前缀$a_{1\sim i}$的最长相同真前后缀的长度,即$kmp_{a,i}=\max\l ...
分类:编程语言   时间:2019-08-21 21:40:21    阅读次数:116
LeetCode137只出现一次的数字——位运算
题目 题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现三次。找出那个只出现一次的元素。 说明:你的算法应该具有线性时间的复杂度。你可以不使用额外的空间来实现吗? 思路 题目要求线性复杂度,一般的算法做不到,不难想到用位运算。但怎么进行位运算,比较难想到。 ^ 相当于除去 ...
分类:其他好文   时间:2019-02-03 12:34:37    阅读次数:233
@算法 - 7@ matrix - tree 定理(矩阵树定理)
我们求 x1 + x2 + ... + xn = a 的非负整数解数量时,将它转换成了组合数的求解问题,使原本暴力枚举的指数级复杂度降为求阶乘的线性复杂度。我们求图中生成树个数的时候,也可以根据 matrix-tree 定理转换成线性代数中求行列式的问题。两个问题的思路是一致,将原问题转换为另一领域... ...
分类:编程语言   时间:2019-01-17 14:00:07    阅读次数:206
FFT字符串匹配
本文半原创 参考资料: "其实就是照抄的什么参考啊" 我们知道KMP可以用来在线性复杂度内进行制胡窜匹配 今天教您一种新方法:用FFT进行字符串匹配 您可能觉得这很玄学,FFT不是做多项式卷积的吗,怎么还可以做制胡窜匹配 您先别着急,请接着听 我们设两个字符串 模式串$a$,长度为$m$,文本串$b ...
分类:其他好文   时间:2018-12-04 21:09:32    阅读次数:256
快速排序和二分查找
快排和二分查找都基于一种叫做「分治」的算法思想,通过对数据进行分类处理,不断降低数量级,实现O(logN)(对数级别,比O(n)这种线性复杂度更低的一种,快排核心是二分法的O(logN),实际复杂度为O(N*logN))的复杂度。 快速排序 快排大概的流程是: 二分查找 二分查找法主要是解决「在一堆 ...
分类:编程语言   时间:2018-08-14 15:41:39    阅读次数:303
线性复杂度的素数筛选法
// #include"cstdio" // #include"cstring" // using namespace std; // #define maxn 100000//求maxn范围内的素数 // long long su[maxn],cnt; // bool isprime[maxn];... ...
分类:其他好文   时间:2018-07-22 23:31:26    阅读次数:256
Leetcode 164 数组最大间隔(线性复杂度实现)//Python
LeetCode 地址:https://leetcode.com/problems/maximum-gap/description/ 题目描述 给定一个未排序数组,找出排序后的元素之间的最大间隔。 要求用线性时间复杂度实现。 例如:输入为【3,6,9,1,10】,输出应为最大间隔3。 题目分析 线性 ...
分类:编程语言   时间:2018-05-29 20:43:21    阅读次数:725
29条   1 2 3 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!