抄过来的学习下:importjava.util.Scanner;
/*
O(N^3)这中方法就是采用暴力法咯,把所有情况都列出来!假设我们要求i--j这段下标的序列和,i从1-n,j也从1-n,有因为求i--j求和要便利一遍,最好情况是只遍历一遍
最坏是遍历n次,折中也就是n/2,所以是O(n^3);
但是我们知道,i肯..
分类:
其他好文 时间:
2016-07-04 19:05:18
阅读次数:
179
基于最近邻的算法,在各种情况下经常使用,但是当N特别大的时候,效率不是很高,比如当N=10^5,时已经不太好算了
暴力法:O(N^2)
KDT: O(N*sqrt(N)
局部敏感哈希(LSH):跟桶大小有关...
分类:
编程语言 时间:
2016-05-12 20:11:49
阅读次数:
636
找一个字符串里的最长回文子串。
暴力法:定中心,从0长度向两端扩展的方法O(n^2), n >= 10^5还是超时,故只能《O(n^2)
Manacher's 算法:定中心,从p[r],(已能确定以该点为中心两端是回文的长度开始),向两端扩展,时间复杂度, O(n)
算法如下:
示意图:
定义:
cen:当前中心点
p[i]: 以i为中心两端满足回文的长度...
分类:
编程语言 时间:
2016-05-07 10:12:49
阅读次数:
1042
背包问题: 首先我们考虑暴力法:每种情况试一下看看最小。这样的每层递归要分两次,为O(2^n) 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 using namespace std; 5 #define maxn ...
分类:
其他好文 时间:
2016-05-06 14:43:09
阅读次数:
143
枚举法,作为编程世界里一个非常基本的方法或者说技巧,它也可以叫穷举法、暴力法、遍历法,深入了解一些算法后,你会发现它在算法世界当中的用途非常的广泛。 概括地说这种方法非常的简单,我们抽象点来说,对于一个问题的解x,这个解满足限制条件f(x),枚举法给出解决问题的方案是一一列举x所有可能的情况,然后判 ...
分类:
编程语言 时间:
2016-04-30 23:38:52
阅读次数:
281
1)暴力法O(m+n) 2)KMP、Boyer_Mooer、Rabin_Rarp 暴力法 int strStr(String haystack, String needle){ if ( needle.empty() ) return 0; if ( haystack.size() -1 && pa... ...
分类:
编程语言 时间:
2016-04-27 22:36:22
阅读次数:
258
最长回文子串一般有以下两种情况: 问题描述1:给定一个字符串,求它的最长回文子串的长度,并且回文子串的字符在原字符串中必须连续。 分析:很明显可以使用暴力法求解,枚举出所有的子串,分别判断其是否为回文。但是这种方法效率比较低,而且时间复杂度太高,并且如果一个长的子串包含另一个短一些的子串,那么对子串 ...
分类:
其他好文 时间:
2016-04-25 15:01:16
阅读次数:
170
问题描述:给定两个字符串str1和str2,字符串中只包含字母(区分大小写)和数字,并且字符可以重复。现在让你判断str2中的字符是否都来源于str1中的字符(假设str1的长度为m,str2的长度为n)?限制时间复杂度为O(m+n),空间复杂度为O(1)。 分析:采用暴力法可以很容易地实现要求,但 ...
分类:
其他好文 时间:
2016-04-24 15:43:03
阅读次数:
196
给定平面上一系列的点,用暴力法求解它们的凸包,此算法比普通的暴力法要优化,用新找到的极点去寻找下一个极点。此算法不能用于任何两个点在一直线上的情况。 输入 ConvexHull.txt 7,810,1714,1415,2316,1217,322,1724,426,18 C代码 1 /*brute f
分类:
其他好文 时间:
2016-02-02 18:49:57
阅读次数:
149