双端队列(deque容器类):#include与vector
类似,支持随机访问和快速插入删除,它在容器中某一位置上的操作所花费的是线性时间。与vector不同的是:deque
还支持从开始端插入数据:push_front() 。此外deque 不支持与vector 的capacity() 、res...
分类:
其他好文 时间:
2014-05-09 18:19:39
阅读次数:
404
题目:n个人编号分别是1,2,3,...,n,围坐在一张圆桌周围,从编号为k的人开始报数,数到m的人出列。然后他的下一个人开始报数,数到m的那个人又出列;依次循环,直到所有人出列。struct
LNode{ int data; LNode *next;};//n为总人数,k为第一个开始报数的人,.....
分类:
其他好文 时间:
2014-05-09 18:01:58
阅读次数:
386
题目链接:http://acm.nbut.edu.cn/Problem/view.xhtml?id=1557题意:给出n个不相同且分布在1-n之间的正整数组成的队列,每次可以将任一个数放到队首,问最少需要多少次可以将队列变为升序?分析:(1)一种方法是对于每个有较大数在前面的数放到队首,然后将后面比...
分类:
其他好文 时间:
2014-05-09 11:50:08
阅读次数:
262
【面试题015】链表中倒数第k个结点可以用两个指针,当第一个指针指向了第k个时候,第二个指针让他指向链表的第一个元素,然后这两个指针同时向后面移动,当第一个指针移动到末尾的时候,第二个指针指向的就是倒数第K个结点;两个指针的间距保持为k-1;当我们遍历列表的时候发现用一个指针是解决不了问题的,我们可...
分类:
其他好文 时间:
2014-05-05 12:00:51
阅读次数:
286
1 #include "stdio.h" 2 #include "stdlib.h" 3 4
struct list_head{ 5 struct list_head *prev; 6 struct list_head *next; 7 }; 8 9
struct task{1...
分类:
系统相关 时间:
2014-05-05 10:10:11
阅读次数:
462
要求:从上往下打印二叉树的每个结点,同一层的结点按照从左到右的顺序打印。算法思想:每一次打印一个结点的时候,如果该结点有子结点,则把该结点的子结点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的结点,重复前面的打印操作,直到队列中所有的结点都被打印出来为止。
分类:
其他好文 时间:
2014-05-05 10:00:38
阅读次数:
307
堆块分配时的任意地址写入攻击原理堆管理系统的三类操作:分配、释放、合并,归根到底都是对堆块链表的修改。如果能伪造链表结点的指针,那么在链表装卸的过程中就有可能获得读写内存的机会。堆溢出利用的精髓就是用精心构造的数据去溢出下一个堆块的块首,改写块首中的前向指针
Flink 和后向指针 Blink,然后...
分类:
其他好文 时间:
2014-05-05 09:47:29
阅读次数:
491
学了四年的计算机,一直让自己比较苦恼的问题是C语言的参数传递问题,之所以说是苦恼,是因为在某年的一个学期,不幸接触到数据结构,光一个链表就把自己弄得死去活来的,而且自已一直就楞以为在操作的过程中,传递参数的指针也在发生变化,结果可想而知,数据结构成了自己专业课里面险些挂彩的一门课程。直至最近,拿出数...
分类:
编程语言 时间:
2014-05-05 09:32:05
阅读次数:
612
维护两个单调队列,一个存储当前点之前的最大值。
另外一个存储当前点之前的最小值。
若最大值与最小值之间的差大于k,那么就把最大值和最小值中位置靠前的往后移。
#include
#include
#include
#include
#include
using namespace std;
//#define INF ((1<<30)-1)
#define INF 0xfffff
#defin...
分类:
其他好文 时间:
2014-05-04 09:23:04
阅读次数:
372
单调队列入门题。。。
dp[i][j]:第i天,手中拥有j个股票时,获得的最大利润。
若第i天不买不卖:dp[i][j]=max(dp[i][j],dp[i-1][j]);
若第i天买 :dp[i][j]=max(dp[i][j],dp[i-w-1][k]-(j-k)*ap[i]);
若第i天卖 :dp[i][j]=max(dp[i][j],dp...
分类:
其他好文 时间:
2014-05-04 09:13:22
阅读次数:
303