19. 二叉树的镜像(递归)即:交换所有节点的左右子树。从下往上 或 从上往下
都可以。#include #include using namespace std;struct BTNode{ int v; // default
positive Integer. BTNode *pLeft; B....
分类:
其他好文 时间:
2014-05-01 12:41:11
阅读次数:
416
这道题需要注意的地方有以下一些:1.
求从子树中的某节点到当前节点的最大路径不能采用递归方法,因为这个部分会被反复的调用,如果用递归,会使得之前已经计算过的节点被重复计算,使得时间复杂度特别高;2.
树中有节点的值是负数的。下面是AC代码。(我发现AC并不代表代码真的完全正确!!) 1 /** 2 ...
分类:
其他好文 时间:
2014-05-01 12:10:52
阅读次数:
274
红黑树时间限制:3000ms |
内存限制:65535KB难度:3描述什么是红黑树呢?顾名思义,跟枣树类似,红黑树是一种叶子是黑色果子是红色的树。。。当然,这个是我说的。。。《算法导论》上可不是这么说的:如果一个二叉查找树满足下面的红黑性质,那么则为一个红黑树。1)每个节点或是红的,或者是黑的。2)...
分类:
其他好文 时间:
2014-05-01 00:25:22
阅读次数:
391
内容 内容 内容内容$("span").click(function(){
alert($(this).index()+1);});
分类:
Web程序 时间:
2014-05-01 00:10:00
阅读次数:
463
要不是为了写splay的区间旋转的下放,我才不会写线段树的lazy下放来练练手(我原来的lazy都是跟着函数走的。。)这个时候我们得对lazy进行重新的界定,那就是lazy对当前节点是不产生影响的,而是对它的儿子产生影响。也就是说,当我到了某一个[l,r]区间,我不仅要更新它的lazy值,还要更新本...
分类:
其他好文 时间:
2014-04-30 23:44:18
阅读次数:
426
题目大意:
两个操作
1 id op 把id的位置+op
2 id op 查询在【id,op】之间的所有的数的差
思路:
关键是pushup函数。
自己退一下会发现,跟区间的总和,区间的节点个数有关。
比如如果左区间是 1 2 的话
右区间来一个 9
那么
就要加上
9-1+9-2
#include
#include
#include
#incl...
分类:
其他好文 时间:
2014-04-29 13:44:22
阅读次数:
475
上次的博文项目进阶
之 集群环境搭建(二)MySQL集群中,我们搭建了一个基础的MySQL集群,这篇博客咱们继续讲解MySQL集群的相关内容,同时针对上一篇遗留的问题提出一个解决方案。...
分类:
数据库 时间:
2014-04-28 10:26:42
阅读次数:
403
伸展树模版真的好长好长。。。
cut a b c:把第a-1个数伸展到根节点,把第b+1个数伸展到a的右子树,然后把ch[ch[root][1][0]]拿掉,放在剩下的树的第c个节点下。
flip a b:把第a-1个数伸展到根节点,把第b+1个数伸展到a的右子树,然后翻转ch[ch[root][1][0]];
由于会出现操作两边的情况,所以加了两个-1节点。
注意:
1,输出的时候要注...
分类:
其他好文 时间:
2014-04-27 22:31:19
阅读次数:
295
居然没有想出来,唉。
归正传。这题就是在求一串数在每次只能对调相邻两位时,要得到其逆序最少要移动多少次。
在直线上移动很简单,类似于冒泡排序的方法,一个数不断向上冒,直到最终位置。不难得到其需要移动的次数公式为n*(n-1)/2。其中n为总点数。
那么在圆环上移动又会如何呢?应该会不一样这是我们直观的感受。事实也是如此,移动的过程是将圆环分为两段,分别移动。那么又在何处分段呢?
答案是尽量...
分类:
其他好文 时间:
2014-04-27 21:26:07
阅读次数:
324
很久没有用过二叉树了,最近由于需要用到了,发现很多知识需要巩固了,中间涉及到一个算法就是找任意两个节点的最近祖先。通过本人回顾和演算,最终提出了下面一个方法,网上也有很多其他的方式实现,再次仅对自己好几个小时的工作作个记录和积累吧! 程序是用C语言写的,个人觉得如果用C#实现会更加方便。
首先是数据结构定义:
typedef char TElemType;
typedef bool Statu...
分类:
其他好文 时间:
2014-04-27 21:14:06
阅读次数:
366