摘要: Description 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数。) 对于给定的k个待安排的活动, 阅读全文
posted @ 2018-04-07 21:49 王陸 阅读(1963) 评论(0) 推荐(1) 编辑
摘要: DescriptionThe polar bears are going fishing. They plan to sail from (sx,?sy) to (ex,?ey). However, the boat can only sail by wind. At each second, th 阅读全文
posted @ 2018-04-07 19:55 王陸 阅读(416) 评论(0) 推荐(1) 编辑
摘要: 一、平衡树 之前我们学习过二叉查找树,发现它的查询效率比单纯的链表和数组的查询效率要高很多,大部分情况下,确实是这样的,但不幸的是,在最坏情况下,二叉查找树的性能还是很糟糕。 例如我们依次往二叉查找树中插入9,8,7,6,5,4,3,2,1这9个数据,那么最终构造出来的树是长得下面这个样子: 我们会 阅读全文
posted @ 2018-04-07 19:50 王陸 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 优先队列 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在某些情况下,我们可能需要找出队列中的最大值或者最小值,例如使用一个队列保存计算机的任务,一般情况下计算机的任务都是有优先级的,我们需要在这些计算机的任务中找出优先级最高的任务先执行,执行完毕后就需要把这个任务从队列中移 阅读全文
posted @ 2018-04-07 19:41 王陸 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 堆 **1.1 **堆的定义 堆是计算机科学中一类特殊的数据结构的统称,堆通常可以被看做是一棵完全二叉树的数组对象。 堆的特性: 它是完全二叉树,除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不是满的,那么要求左满右不满。 它通常用数组来实现。 具体方法就是将二叉树 阅读全文
posted @ 2018-04-07 19:20 王陸 阅读(298) 评论(0) 推荐(0) 编辑
摘要: In the 22nd Century, scientists have discovered intelligent residents live on the Mars. Martians are very fond of mathematics. Every year, they would 阅读全文
posted @ 2018-04-07 19:14 王陸 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 二叉树入门 之前我们实现的符号表中,不难看出,符号表的增删查操作,随着元素个数N的增多,其耗时也是线性增多的,时 间复杂度都是O(n),为了提高运算效率,接下来我们学习树这种数据结构。 1.1 树的基本定义 树是我们计算机中非常重要的一种数据结构,同时使用树这种数据结构,可以描述现实生活中的很多事物 阅读全文
posted @ 2018-04-07 17:08 王陸 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 符号表 符号表最主要的目的就是将一个键和一个值联系起来,符号表能够将存储的数据元素是一个键和一个值共同组成的 键值对数据,我们可以根据键来查找对应的值。 符号表中,键具有唯一性。 符号表在实际生活中的使用场景是非常广泛的,见下表: | 应用 | 查找目的 | 键 | 值 | | | | | | | 阅读全文
posted @ 2018-04-07 16:47 王陸 阅读(213) 评论(0) 推荐(0) 编辑