给定数组,求解一个三元组,是元素相加为零,且三元组不能重复,并且有序。
思路如下:
先排序,固定第一个指针指向开头,第二个指针指向后一个元素,第三个指针指向最后一个元素。
让这三个元素相加,如果结果大于零,让最后一个元素向前移动,再次求和,反之亦然。但要确保第三个元素在第二个元素后面。
这样依次添加进向量中即可,只要保证三个指针的顺序不乱就能保证三元组有序。怎么确保不重复,也就是确保三元组都不相同。
这是个需要着重考虑的问题,很绕,本题的难点就在这里。顺着下面的代码走一遍就能很清楚的知道了。...
分类:
其他好文 时间:
2014-05-26 05:50:05
阅读次数:
193
思路:这道题目关键在于不能创建新的节点,如不然,我们可以直接将二叉排序树中序遍历保存到一个数组中,而后再建立一个双性链表,将数据保存到双向链表里。
这里不能创建新节点,我们只能改变节点的指向左右子树的节点,让其变为指向二叉链表中的前后节点,很明显这里同样用的是中序遍历,因此这道题目依然是中序遍历的变种,中序递归构造实现即可,每次递归都保存一个指向已构造好的双向链表的尾节点的指针,将其与下一个节点连接起来。
另外,这道题OJ的输出格式与前面的不同,输出样例中又没有说明,我试了三次才AC,前两次...
分类:
其他好文 时间:
2014-05-26 05:21:59
阅读次数:
189
在Qualnet里添加了一个应用层协议,编译完全通过,但在运行时总是在63s内存读取错误。可以肯定是路由表更新处指针调用错误了.为了定位错误,最可靠的办法就是使用VS进行调试。但按照官方手册设置调试时,却出现了如下错误信息:
'qualnet.exe': Loaded 'C:\snt\qualnet\5.0\bin\qualnet.exe', Symbols loaded.
'qualnet....
分类:
Web程序 时间:
2014-05-26 04:11:21
阅读次数:
438
Effective 学习之以独立语句将newed对象置入智能指针...
分类:
其他好文 时间:
2014-05-26 03:59:29
阅读次数:
193
1. 两栈共享空间结构
typedef struct
{
SElemType data[MAXSIZE];
int top1; /* 栈1栈顶指针 */
int top2; /* 栈2栈顶指针 */
}SqDoubleStack;...
分类:
编程语言 时间:
2014-05-26 03:52:28
阅读次数:
391
说明:
******使用typedef关键字定义新的数据类型。
***如:typedef unsigned short U16,在定义变量时,unsigned short a和U16 a定义是等价的。
******不建议使用#define来定义新的数据类型,因为#define不能正确的处理指针类型
***如:#define ptr_to_char char *
p...
分类:
编程语言 时间:
2014-05-26 03:50:03
阅读次数:
328
/*---分别对单链表和双链表,只使用指针来交换两个相邻的元素。---*/
/*-单链表版本-*/
#include
#include
struct Node{
int val;
struct Node *next;
};
Node *findEnd(Node *list){
while(list->next) list = list->next;
return ...
分类:
其他好文 时间:
2014-05-24 19:41:49
阅读次数:
253
/*
CRTOS 实时可剥夺型内核
1.任务不用预加载,不用预定义。任务调用时加载,可删除(退出死循环即可)
2.单位轮转查询时间由晶振和定时器初始化决定。在这里为10ms
3.定时时间为【 time*单位轮转查询时间 】 ,其中time为 rtos_wait(time)中time.
4.可运行多个任务【自定义】
5.任务从rtos_wait()处切换,在定时时间到后从定时中断中切换回...
分类:
编程语言 时间:
2014-05-24 14:22:34
阅读次数:
372
1.
@property的参数说明ARC是苹果为了简化程序员对内存的管理,推出的一套内存管理机制使用ARC机制,对象的申请和释放工作会在运行时,由编译器自动在代码中添加retain和release1>
strong:强指针引用的对象,在生命周期内不会被系统释放 在OC中,对象默认都是强指针2>...
分类:
移动开发 时间:
2014-05-24 10:06:26
阅读次数:
392
AC自动机简介:KMP是用于解决单模式串匹配问题,
AC自动机用于解决多模式串匹配问题。精华:设这个节点上的字母为C,沿着他父亲的失败指针走,直到走到一个节点,他的儿子中也有字母为C的节点。然后把当前节点的失败指针指向那个字目也为C的儿子。如果一直走到了root都没找到,那就把失败指针指向root。...
分类:
其他好文 时间:
2014-05-24 09:36:42
阅读次数:
318