随笔分类 -  常用算法

摘要:并查集:并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。 算法:用集合中的某个元素来代表这个集合,该元素称为集合的代表元。一个集合内的所有元素组织成以代表元为根的树 形结构。对于每一个元素 parent[x]指向x在树形结构上的父亲节点。如果x是根节 阅读全文

posted @ 2017-04-05 21:34 codeDog123 阅读(194) 评论(0) 推荐(0)

摘要:若图G中存在这样一条路径,使得它恰通过G中每条边一次,则称该路径为欧拉路径。若该路径是一个圈,则称为欧拉(Euler)回路。 具有欧拉回路的图称为欧拉图(简称E图)。具有欧拉路径但不具有欧拉回路的图称为半欧拉图。 无向图存在欧拉回路的充要条件:一个无向图存在欧拉回路,当且仅当该图所有顶点度数都为偶数 阅读全文

posted @ 2017-04-05 12:28 codeDog123 阅读(335) 评论(0) 推荐(0)

摘要:【问题描述】输入一行字符串,该字符串只由小写英文字母a-z组成,且其中的字符可以重复,最长不超过10000个字符。 从该字符串中按顺序挑选出若干字符(不一定相邻)组成一个新串,称为“子串”。如果子串中每两个相邻的字符或者相等,或者后一个比前一个大,则称为“升序子串”。编程求出输入字符串的最长升序子串 阅读全文

posted @ 2017-04-04 14:59 codeDog123 阅读(1556) 评论(0) 推荐(0)

摘要:【问题描述】对于一个栈,已知元素的进栈序列,判断一个由栈中所有元素组成的排列的出栈序列。 有N个数,则代表入栈序列为1,2,3,4,5...,N。求所有可能的出栈序列和总数。 代码如下 也可以用Catalan数求解。 h(n)=h(0)h(n-1)+h(1)h(n-2)+...+h(n-1)h(0) 阅读全文

posted @ 2017-04-02 21:20 codeDog123 阅读(238) 评论(0) 推荐(0)

摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=1166 阅读全文

posted @ 2017-04-01 17:44 codeDog123 阅读(115) 评论(0) 推荐(0)

摘要:#include #include using namespace std; //递归版本 void quickSort(int A[],int s,int t){ if (s >= t){ return; } int i = s; int j = t + 1; while (true){ do{ i... 阅读全文

posted @ 2017-03-29 22:48 codeDog123 阅读(1481) 评论(0) 推荐(0)

导航