随笔分类 -  数据结构&算法

摘要:一个数据序列的主元素,是指序列中出现次数超过序列长度一半的元素。法1(期望时间复杂度为O(n)):由于主元素出现次数超过序列长度的一半,因此,主元素一定是中位数。可以利用递归划分求中位数的方法,期望时间复杂度为O(n)。法2:显然,如果一个序列存在主元素,那么我们去掉序列中不同的两个数,剩下序列的主... 阅读全文
posted @ 2015-07-28 20:46 __brthls 阅读(614) 评论(0) 推荐(0)
摘要:1 class Solution { 2 public: 3 /** 4 * @param nums: A list of integers. 5 * @return: An integer denotes the middle number of the array.... 阅读全文
posted @ 2015-07-28 20:01 __brthls 阅读(3986) 评论(0) 推荐(1)
摘要:1 #include 2 using std::vector; 3 4 template 5 void swap(vector &a, int i, int j) 6 { 7 T tmp = a[i]; 8 a[i] = a[j]; 9 a[j] = ... 阅读全文
posted @ 2015-07-15 16:57 __brthls 阅读(248) 评论(0) 推荐(0)
摘要:1 #include 2 using std::vector; 3 4 template 5 class PriorityQueue 6 { 7 public: 8 PriorityQueue(int size = 101):bHeap(size),currentSiz... 阅读全文
posted @ 2015-07-15 14:03 __brthls 阅读(465) 评论(0) 推荐(0)
摘要:1 #include 2 #include 3 #include 4 #include 5 using std::vector; 6 using std::list; 7 using std::string; 8 using std::find; 9 10 int hash(const s... 阅读全文
posted @ 2015-07-15 11:29 __brthls 阅读(255) 评论(0) 推荐(0)
摘要:1 inline int max(int x, int y){ return x>y?x:y; } 2 3 template 4 class AVLTree 5 { 6 public: 7 AVLTree():root(NULL) {} 8 ... 阅读全文
posted @ 2015-07-14 11:24 __brthls 阅读(213) 评论(0) 推荐(0)
摘要:1 template 2 class BinarySearchTree 3 { 4 public: 5 BinarySearchTree():root(NULL){} 6 BinarySearchTree(const BinarySearchTr... 阅读全文
posted @ 2015-07-12 19:50 __brthls 阅读(344) 评论(0) 推荐(0)
摘要:一、二分图的最小点覆盖 无向图的最小点覆盖,就是选取图中最少的点使得每条边至少有一个端点被选中。 而二分图的最小点覆盖 = 最大匹配。二、二分图的最大独立集 无向图的最大独立集,就是从无向图中选取尽量多的点,这些点两两不邻接。 而二分图的最大独立集 = 点总数 - 最大匹配。解析见链接:ht... 阅读全文
posted @ 2015-03-07 22:30 __brthls 阅读(235) 评论(0) 推荐(0)
摘要:关于算法的讲解,个人觉得这篇博文写得非常好:http://blog.csdn.net/dark_scope/article/details/8880547我的代码: 1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 ... 阅读全文
posted @ 2015-02-23 14:09 __brthls 阅读(193) 评论(0) 推荐(0)
摘要:二分图判定问题:判定是否存在一个合理的染色方案,使得我们所建立的无向图满足每一条边两端的顶点颜色都不相同。算法描述:(1)选取一个未染色的节点u进行染色。(2)遍历u的邻接点v:若v未染色,则将v染上与u不同的颜色并对v重复步骤(2);若v已经染色且颜色与u相同,则判定不可行并退出遍历。(3)若所有... 阅读全文
posted @ 2015-02-23 12:23 __brthls 阅读(212) 评论(0) 推荐(0)
摘要:堆是一种完全二叉树,分为大根堆和小根堆,以大根堆为例:大根堆满足性质:对于堆中的任意一个节点,其值在以该节点为根的子树中最大。支持的操作:O(logn)的insert和O(logn)的pop.(1)insert操作:将插入元素放到完全二叉树的最后一个节点之后的一个节点,然后从该节点开始向上不断维护堆... 阅读全文
posted @ 2015-02-23 10:53 __brthls 阅读(213) 评论(0) 推荐(0)
摘要:kruscal算法描述:kruscal算法的思路是:最初,把所有节点都看成孤立的集合,将图中所有的边按权重从小到大排序,然后依次遍历这些边,若边的两个端点在两个不同的集合中,则合并这条边的端点所属的两个集合,直到选出n-1条边将图中的所有n个节点都合并到了同一个集合,n-1次合并就选出了n-1条边,... 阅读全文
posted @ 2015-02-22 21:46 __brthls 阅读(397) 评论(0) 推荐(0)
摘要:prim算法描述:prim算法的思想和代码都跟dijkstra算法非常相似。在dijkstra算法中,我们用每次取出未标记集合中到源点最近的点进行标记并更新其邻接点到源点的距离:当d[x]+w 2 #include 3 #include 4 5 using namespace std; 6 ... 阅读全文
posted @ 2015-02-22 20:51 __brthls 阅读(465) 评论(0) 推荐(0)
摘要:算法描述:首先将起始节点入队,然后每次从队列中取出一个节点,更新其邻接点的最短路径值,若有被更新,则检查该邻接点是否在队列中,若不在队列中,则入队。如此循环直到队空时算法结束。当图中不存在负环时,算法一定会收敛,并能得到所求最短路。原因在于,每次从队列中取出一个节点并更新其邻接点的过程其实都是在向最... 阅读全文
posted @ 2015-02-22 19:53 __brthls 阅读(248) 评论(0) 推荐(0)
摘要:题目链接:http://hihocoder.com/problemset/problem/1089算法描述:floyd算法是求解图中任意两点最短路的经典算法,复杂度为O(n^3)。虽然我们完全可以用n次dijkstra算法来求任意两点的最短路,复杂度也是O(N^3),但如果有一个算法只需要5行代码就... 阅读全文
posted @ 2015-02-22 18:27 __brthls 阅读(157) 评论(0) 推荐(0)
摘要:题目链接:http://hihocoder.com/problemset/problem/1081算法主要思路是:将所有节点分为两个集合(已标记节点和未标记节点),已标记节点集合中的所有节点到源节点的最短距离都已经得到。算法主要的工作就是,循环的从未标记节点集合中每次取出一个到源点距离最短的节点放入... 阅读全文
posted @ 2015-02-22 17:40 __brthls 阅读(379) 评论(0) 推荐(0)
摘要:题目链接:http://hihocoder.com/problemset/problem/1080对于这种不止一个懒标记的线段树,只要弄清楚各种操作和各种懒标记间的关系就OK了。我的代码: 1 #include 2 3 using namespace std; 4 5 #define... 阅读全文
posted @ 2015-02-22 16:20 __brthls 阅读(206) 评论(0) 推荐(0)
摘要:题目链接:http://hihocoder.com/problemset/problem/1079题目大意: 有一条数轴,先后对数轴上的一些区间着上不同的颜色,后着色的区间若跟先着色的区间有重合,则重合部分颜色将被后着色的区间颜色覆盖,求在一系列的区间着色操作之后,最终数轴上的颜色有几种。区间数目... 阅读全文
posted @ 2015-02-22 15:10 __brthls 阅读(286) 评论(0) 推荐(0)
摘要:题目链接:http://hihocoder.com/problemset/problem/1078我的代码: 1 #include 2 #include 3 4 using namespace std; 5 6 #define MAXN 100005 7 8 int w[M... 阅读全文
posted @ 2015-02-22 12:53 __brthls 阅读(260) 评论(0) 推荐(0)
摘要:题目链接:http://hihocoder.com/problemset/problem/1070 http://hihocoder.com/problemset/problem/1077我的代码: 1 #include 2 #include 3 4 using namespace st... 阅读全文
posted @ 2015-02-22 11:51 __brthls 阅读(201) 评论(0) 推荐(0)