首先作这个题,最直接的思路是两个for循环,然而所带来的缺陷是时间复杂度太高O(n2)。所以要转变思路:如何能一次遍历就解决问题?因为是两个数相加来得到一个既定的数(target),那就有一个思路是:能不能两头相加,然后通过头指针和尾指针来回向中间靠拢来实现?答案是可以的。分两步走:排序设置头、尾两...
分类:
编程语言 时间:
2015-02-02 19:32:32
阅读次数:
164
//1.队列顺序结构的定义
#define MAXQSIZE 100
typedef struct
{
QElemType base[MAXQSIZE];//静态数组
int front;//队列头指针
int rear;//队列尾指针
}SqQueue;
//解决队列的假溢出方法
//1.将循序列队臆造为一个环状空间。尾指针指向头指针
//2.在对满的情况下,rear指针和front...
分类:
其他好文 时间:
2015-01-31 19:27:25
阅读次数:
319
转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4250795.html声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己也方便有类似问题的朋友,本文的思想也许有所借鉴,但源码均为本人实现,如有侵权,请发邮件表明文章和原出处...
分类:
其他好文 时间:
2015-01-28 12:40:37
阅读次数:
352
题目大意:给定一条道路上的n个稻田,要求建一个粮仓,并且选定一些稻田进行运输,这些稻田到粮仓的距离之和不能超过B,求最多能选择多少个稻田
维护一个队列,头指针从前到后扫一遍
如果发现尾指针到头指针这段稻田的中位数上建一个粮仓时距离之和超过了B,就调整尾指针
对距离维护一个前缀和 每次取中位数之后可以O(1)计算距离和
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2015-01-22 09:29:00
阅读次数:
132
题目:输入带头结点的单链表L,输出该单链表中倒数第k个结点。单链表的倒数第0个结点为该单链表的尾指针。要求只能遍历一次单链表。
解题思路:
如果不要求只能遍历一次单链表,我们可以先遍历一次单链表,求出它的结点的总个数n(包括头结点),所以单链表的结点是从倒数第n-1个到倒数第0个,然后再遍历一次单链表,遍历时访问的第n-k-1个结点就是该单链表中倒数第k个结点。现在要求只能遍历...
分类:
编程语言 时间:
2015-01-17 18:10:44
阅读次数:
162
题目:输入带头结点的单链表L,输出该单链表中倒数第k个结点。单链表的倒数第0个结点为该单链表的尾指针。要求只能遍历一次单链表。
解题思路:
如果不要求只能遍历一次单链表,我们可以先遍历一次单链表,求出它的结点的总个数n(包括头结点),所以单链表的结点是从倒数第n-1个到倒数第0个,然后再遍历一次单链表,遍历时访问的第n-k-1个结点就是该单链表中倒数第k个结点。现在要求只能遍历一次单链...
分类:
其他好文 时间:
2015-01-15 11:01:22
阅读次数:
121
链式队列是基于单链表的一种存储表示, 其形状如下图所示: (队列的队头指针指向单链表的第一个结点, 队尾指针指向单链表的最后一个结点, 注意没有无用的空[头/尾]节点) 用单链表表示的链式队列特别适合于数据元素变动比较大的情况, 而且不存在队列满而产生溢出的情况; 链式队列结点构造:[这次我们将节点构造成了类LinkQueue的嵌套类]struct ChainNode
{
C...
分类:
其他好文 时间:
2015-01-10 21:06:42
阅读次数:
223
双指针思想,尾指针不断往后扫,当扫到有一个窗口包含了所有T的字符,然后再收缩头指针,直到不能再收缩为止。最后记录所有可能的情况中窗口最小的...
队列的存储特性:FIFO(first in first out)即先进先出原则单向/双向队列*优先队列(与queue不同)存储方式: 带尾指针的单向链表 / 数组queue类:queue();bool empty() const;T &front(); //最先入的 队首元素const T ...
分类:
其他好文 时间:
2014-12-28 00:23:37
阅读次数:
191
基本分类:1、单向链表2、带尾指针的单向链表3、双向循环链表以下分类进行说明1、单向链表基本元素:*front //头节点 *next //下一节点声明:node*p;初始化:p=new node(nodeValue,nextpointer);简单遍历: 1 template 2 vo...
分类:
其他好文 时间:
2014-12-26 00:51:49
阅读次数:
209