算法分析:求解最长公共子序列

算法分析系列文章中的代码可被任何人无偿使用于任何场景且无需注明来源也不必在使用前征得本文作者同意。

算法分析系列文章旨在传播准确、完整、简洁、易懂、规范的代码实现,并传授基本的编程思想和良好的编码习惯与技巧。

若文章中的代码存在问题或逻辑错误,请通过邮件等形式(见文章结尾)告知于本文作者以便及时修正错误或改进代码。

算法系列文章不可避免地会参考和学习众多网友的成果,在行文风格、内容及求解思路上也会进行借鉴,如有侵权嫌疑,请联系本文作者。

PS:若为转载该文章,请务必注明来源,本站点欢迎大家转载。

问题描述

如果序列 中的所有元素按照其在 中的出现顺序依次出现在另一个序列 中,则称 子序列

子序列不要求位置的连续性(即,元素相邻),只要相对顺序不变即可。

若给定一个序列集合(数量大于或等于2,但通常为两个序列),则这些序列所共同拥有的子序列,称为公共子序列。而在这些公共子序列中长度最长的子序列则称为该序列集合的最长公共子序列(Longest Common Sequence, LCS)。

本例所要求的便是求解任意两个序列的最长公共子序列(可能存在多个不同的序列),并打印其长度及其其中的任意一个序列。

阅读更多
算法分析:求解斐波那契数列

算法分析系列文章中的代码可被任何人无偿使用于任何场景且无需注明来源也不必在使用前征得本文作者同意。

算法分析系列文章旨在传播准确、完整、简洁、易懂、规范的代码实现,并传授基本的编程思想和良好的编码习惯与技巧。

若文章中的代码存在问题或逻辑错误,请通过邮件等形式(见文章结尾)告知于本文作者以便及时修正错误或改进代码。

算法系列文章不可避免地会参考和学习众多网友的成果,在行文风格、内容及求解思路上也会进行借鉴,如有侵权嫌疑,请联系本文作者。

PS:若为转载该文章,请务必注明来源,本站点欢迎大家转载。

问题描述

从0和1开始,之后的每一个数均为前两个数的和,这样性质的数依次排列,便称为斐波那契数列。即形成如下数列形式:

1
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, ...

用数学公式表示该数列即为:

本案例所要解决的就是:给定一个整数n,求解斐波那契数列中第n项的数值。注意,0表示第零项,而不是第一项。

阅读更多
算法分析:分治法求解给定集合中的众数及其重数

算法分析系列文章中的代码可被任何人无偿使用于任何场景且无需注明来源也不必在使用前征得本文作者同意。

算法分析系列文章旨在传播准确、完整、简洁、易懂、规范的代码实现,并传授基本的编程思想和良好的编码习惯与技巧。

若文章中的代码存在问题或逻辑错误,请通过邮件等形式(见文章结尾)告知于本文作者以便及时修正错误或改进代码。

算法系列文章不可避免地会参考和学习众多网友的成果,在行文风格、内容及求解思路上也会进行借鉴,如有侵权嫌疑,请联系本文作者。

PS:若为转载该文章,请务必注明来源,本站点欢迎大家转载。

问题描述

给定含有n个元素的多重集合S,每个元素在S出现的次数称为该元素的重数。多重集S重数最大的元素称为众数mode)。

例如,S={1,2,2,2,3,5},则,多重集S的众数是2,其重数为3

注:众数可能存在多个。

本案例要求采用分治法求解给定集合中的众数及其重数,存在多个众数时选择第一个即可。

分治法,即,把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。(引用自「维基百科」)

阅读更多
记一次惊心动魄的CentOS系统升级经历
阅读更多
Nginx特例场景配置

本文所使用的相关代码片段可从 https://github.com/flytreeleft/docker-nginx-gateway 得到完整内容。

Nginx随机展示自定义错误页面

Source code: https://github.com/flytreeleft/docker-nginx-gateway/tree/master/config/error-pages
Custom error pages: https://github.com/flytreeleft/docker-nginx-gateway/tree/master/examples/epage.d/all

关键字

  • 随机展示多个错误页面
  • Nginx自定义错误页面

在访问HTTP站点时最容易出现的错误就是404,于是就有许多非常有个性的404错误页面。而为我们自己的站点放置一些简洁、清爽的错误页面,在资源再利用的前提下,也将为我们自身增加不少好感和亲和力。

这里将要介绍的便是如何为我们的站点配置自定义错误页面,并同时支持为相同错误随机展示不同的错误页面。

阅读更多
未来社会形态畅想

The post isn’t finished yet, it will be updated anytime!

无现金社会

提要:

阅读更多
如何突破自己的瓶颈?

The post isn’t finished yet, it will be updated anytime!

以旁观者角度审视自己

提要:

  • 勇敢面对自己,正视自己的缺点
  • 客观分析自己的好的、坏的甚至是邪恶的想法,不好的想法切不可影响到他人,需要自我消化
  • 人无完人,对于非理性情绪不要过分压抑,在不影响他人的情况下采取各种积极或消极的方式去释放这些情绪
    • 消极的释放方式所要达到的目的是推翻重建,进入全新的境界,从而从另一个视角看待原来的情绪和行为
阅读更多
Hello world!
1
System.out.println("Hello world!");
1
alert('Hello world!');
阅读更多