最大堆能够在O(1)的时间内取得集合中的最大值,并且在集合中加入新元素的时候,能够以O(Logn)的时间将新的元素插入到堆中。当取出最大的元素时,能够以O(Logn)的时间重新将堆整理成最大堆。最小堆同理。最大优先级队列的应用实例:基于优先级的作业调度,在所有等待调度的作业中,选择具有最大优先级作业...
分类:
其他好文 时间:
2014-05-01 09:21:41
阅读次数:
386
越来越多的公众账号接入支付宝钱包, 加入移动互联网的战斗队列。 玉龙同学把工作中的经历沉淀下来, 为支付宝公众账号开发者补全部分文档细节。...
分类:
其他好文 时间:
2014-04-30 22:28:38
阅读次数:
251
题目链接:click here~
中文题意思非常明了就不解释了。。思路就是用栈,要是没有括号此题灰常简单,有括号了就要好好理清思路了
1.是数字就直接进队列或者输出,此题因为是有浮点数,所以不推荐进队列,因为要是一个数字还好,可以用queue来写然后用%C来输出,但是小数怎么办?我觉得也许可以队列输出的时候判断下一个char元素是+ - * / 的时候才输出空格那样就要用2个变量来保存,这样的...
分类:
其他好文 时间:
2014-04-30 22:17:40
阅读次数:
282
AbstractQueuedSynchronizer,简称AQS,是java.util.concurrent包的synchronizer的基础框架,其它的synchronizer(包括Lock、Semaphore、CountDownLatch、FutureTask等)都是以它作为基础构建的,这篇文章我将对AQS的框架结构作出介绍,包括它对同步状态的管理,功能流程,等待队列的管理等,并涉及到一些实现...
分类:
其他好文 时间:
2014-04-30 22:12:38
阅读次数:
421
题目链接:A. Sereja and Swaps
题意:给定一个序列,可以交换k次,问交换完后的子序列最大值的最大值是多少
思路:暴力枚举每一个区间,然后每个区间[l,r]之内的值先存在优先队列内,然后找区间外如果有更大的值就替换掉。求出每个区间的最大值,最后记录下所有区间的最大值
代码:
By lab104_yifan, contest: Codeforces Round #243 (D...
分类:
其他好文 时间:
2014-04-29 13:45:21
阅读次数:
261
Given a singly linked list L: L0→L1→…→Ln-1→Ln,
reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…
You must do this in-place without altering the nodes' values.
For example,
Given {1,2,3,4}, reorder it to ...
分类:
其他好文 时间:
2014-04-29 13:42:21
阅读次数:
427
UVA Airport Express
题意:在Iokh市机场快线分为经济线和商业线。线路和速度价格都不同。你只有一张商业线车票,即最多只能坐一站商业线,其他时候只能坐经济线。找出一条去机场最快的线路。
思路:因为商业线只能坐一站,假如乘坐一条商业线(a,b),那么起点到a,b到终点都必须是最短路。所以先预处理起点和终点到其他所有点的最短路,分别记为f()和g(),两次dijstra即...
分类:
Web程序 时间:
2014-04-29 13:33:21
阅读次数:
340
使用函数操作链表
1:计算链表中结点的个数:定义一个Length_list()函数用于计算链表中结点的个数
函数代码:
//计算链表中结点的个数
void Length_list(PNODE pHead)
{
PNODE p = pHead->pNext;
int len = 0;
while(NULL != p)
{
len++;
p = p->pNext;
...
分类:
其他好文 时间:
2014-04-29 13:28:21
阅读次数:
302
队列只允许一端进行插入操作,另一端进行删除操作。队列是一种先进先出的线性表,简称FIFO,允许插入的一段为队尾,允许删除的一端为队头。
顺序队列
与栈不同的是,队列的出队元素在队头,那么队列没出去一个元素,后面的元素就要依次像前移动,这样他的时间复杂度就是O(n)。
考虑上面截图的流程感觉效率很低,起始我们的队列可以以另一种方式来处理,就是元素不懂,而队头的指...
分类:
其他好文 时间:
2014-04-29 13:14:20
阅读次数:
284