最长上升子序列(LIS)算法

理解:该子序列中后一项都比前一项大,例如有序列2 7 1 5 6 4 3 8 9,则最长上升子序列为2 5 6 8 9。 具体应用:用于确定一个代价最小的调整方案,使一个序列变为升序。只需要固定LIS中的元素,调整其他元素即可。 动态规划实现 O(n2)我们将序列存入数组a中,定义一个dp数组,存放最大长度。 2 7 1 5 6 4 3 8 9 我们能够得出一个规律: dp[i] = 前面v...

最长公共子序列(LCS)算法

一、最长公共字串与最长公共子序列1.1 最长公共子串(Longest Common Substirng)子串是串的一个连续的部分,子串中字符的位置必须连续。 例如:有两个字符串ABCBDAB 和 BDCABA,则它们的最长公共子串是:AB。 1.2 最长公共子序列(Longest Common Subsequence,LCS)子序列是从串中去掉任意的元素而获得新的序列,子串中字符的位置不必连续。 ...

最小生成树(Prim)算法

算法思想 假设G=<V,E>是连通图,TE是G上最小生成树中边的集合。 算法从U={u0}(u0∈V),TE={ }开始,任取一个顶点u0作为开始点。 重复执行下述操作:在所有u∈U, v∈V-U的边(u,v)∈E中找一条代价最小的边(u0,v0)并入集合TE,同时v0并入U,直至U=V为止。 注意:选择最小边时,可能有多条同样权值的边可选,此时任选其一。 代码实现12345...

最短路径(Dijkstra)算法

一、算法功能给定一个出发点(单源点)和一个有向网G=(V, E), 求出源点到其它各顶点之间的最短路径。 二、算法思想(1)把图中顶点集合分成两组,第一组为集合S,存放已求出其最短路径的顶点,第二组为尚未确定最短路径的顶点集合是V-S(令W=V-S),其中V为网中所有顶点集合。 (2)按最短路径长度递增的顺序逐个把W中的顶点加到S中,直到S中包含全部顶点,而W为空。 (3)在加入的过程中,总保持从...

Java 反序列化漏洞分析

2015年11月6日FoxGlove Security安全团队的@breenmachine 发布了一篇长博客,阐述了利用Java反序列化和Apache Commons Collections这一基础类库实现远程命令执行的真实案例,各大Java Web Server纷纷躺枪,这个漏洞横扫WebLogic、WebSphere、JBoss、Jenkins、OpenNMS的最新版。而在将近10个月前, G...

Nginx 初探(5)——Nginx的高可用

一、回顾通过前面四章的学习,学会了Nginx的安装、配置虚拟主机、反向代理、负载均衡,这基本上就是 Nginx 的大概内容了。 我们知道,nginx 其实是一个代理,客户端通过 nginx 才能够访问到后面的应用服务器(tomcat等)。那么如果 nginx 宕机,即使后面的应用服务器没有出现故障,客户端也不能正常访问了,因此保证 nginx 的高可用十分重要。 二、keepalived既然 ng...

Nginx 初探(4)——负载均衡

一、回顾在上一章《Nginx初探(3)——反向代理》中说到,我们可以为 nginx 配置反向代理,这样 nginx 就能够将客户端的请求根据域名转发给不同的应用服务器,并将应用服务器的结果返回给客户端。 二、负载均衡在学习完上一章后,你也许会有疑问,一个比较大的网站怎么可能只有一台服务器呢?nginx 能够将请求分配给我这个域名下的多台服务器(服务器集群)吗? 答案是可以的,这就是 nginx 的...
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×