算法
changbaolong
这个作者很懒,什么都没留下…
展开
-
最长公共子字符串
子字符串的定义和子序列的定义类似,但要求是连续分布在其他字符串中。比如输入两个字符串BDCABA和ABCBDAB的最长公共字符串有BD和AB,它们的长度都是2。 最长公共子字符串共有两种解决方法,下面具体说说我的思路方法一: Longest Common Substring和Longest Common Subsequence是有区别的 X转载 2013-10-07 21:54:18 · 969 阅读 · 0 评论 -
比较两个数大小的宏
1、#define MAX(a,b) (((a) > (b)) ? (a) : (b))2、#define MAX(a,b) (((((a) - (b)) >> 31 ) & 0x1) ? (a) : (b))原创 2013-10-07 14:29:58 · 6430 阅读 · 1 评论 -
五大常用算法之二:动态规划算法
一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能转载 2013-09-30 10:15:38 · 620 阅读 · 0 评论 -
五大常用算法之一:分治算法
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的转载 2013-09-30 10:14:42 · 714 阅读 · 0 评论 -
对称字符串的最大长度
题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。分析:可能很多人都写过判断一个字符串是不是对称的函数,这个题目可以看成是该函数的加强版。要判断一个字符串是不是对称的,不是一件很难的事情。我们可以先得到字符串首尾两个字符,判断是不是相等。如果不相等,那该字符串肯定不是对称的。否则转载 2013-09-30 10:46:39 · 1036 阅读 · 0 评论 -
五大常用算法之五:分支限界法
分支限界法一、基本描述 类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。 (1)分支搜索算法 所谓“分支”就是采用广度转载 2013-09-30 10:19:18 · 637 阅读 · 0 评论 -
五大常用算法之四:回溯法
1、概念 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 许多复杂的转载 2013-09-30 10:18:38 · 761 阅读 · 0 评论 -
五大常用算法之三:贪心算法
贪心算法一、基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前转载 2013-09-30 10:16:29 · 669 阅读 · 0 评论 -
[转]分享一个算法网址
转载自:http://chensavvy.blog.163.com/blog/static/5715718920095211472940/今天找了一下有关算法的网站,搜了好长时间,在blog上找到一个算法的网址,先paste............本列表收集算法资料丰富的网站,目前仅收英文网站。排名不分先后。http://www.nist.gov/dads/ Dictionar转载 2013-05-16 10:35:49 · 727 阅读 · 0 评论 -
虚函数默认参数选择
#include class Base {public: virtual void f(int a = 1) { std::cout << "Base:: " << a << std::endl; }};class Derived: public Base {public: virtual void f(int a = 2) { std::cout << "Deri原创 2013-05-12 10:26:20 · 866 阅读 · 0 评论 -
算法网页汇总
1.1、经典图算法:http://www.cnitblog.com/cockerel/archive/2006/07/07/13361.aspx1.2、判断单链表中是否存在环及查找环的入口点: http://hi.baidu.com/iwitggwg/item/7ad684119a27fefc9c778a5c1.3、判断无向图是否有回路:http://blog.cs原创 2012-04-08 20:02:07 · 677 阅读 · 0 评论 -
一个有序数列,序列中的每一个值都能够被2或者3或者5所整除
一个有序数列,序列中的每一个值都能够被2或者3或者5所整除,1是这个序列的第一个元素。求第1500个值是多少? 2、3、5的最小公倍数是30。[ 1, 30]内符合条件的数有22个。如果能看出[ 31, 60]内也有22个符合条件的数,那问题就容易解决了。也就是说,这些数具有周期性,且周期为30. 第1500个数是:1500/22=68 150原创 2013-10-09 16:25:41 · 2967 阅读 · 1 评论