题意:给定一棵二叉树,返回按层遍历的结果
思路1:bfs,定义一个新的struct,记录指针向节点的指针和每个节点所在的层
复杂度1:时间O(n),空间O(n)
思路2:dfs
递归函数:
void levelOrder(TreeNode *root, int level, vector<vector >&result)
表示把根为root的树按层存放在result中,其中level表示当前的层数
复杂度2:时间O(n),空间O(n)
相关题目:...
分类:
其他好文 时间:
2014-05-15 14:46:06
阅读次数:
355
1.什么是RTTI?
RTTI 是“Runtime Type Information”的缩写,意思是:运行时类型信息。它提供了运行时确定对象类型的方法。允许“用指向基类的指针或引用来操纵对象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。在 c++中,为了支持 RTTI 提供了两个操作符 :
1 dynamic_cast 操作符:它允许在运行时刻进行类型转换,从而使程...
分类:
编程语言 时间:
2014-05-15 11:19:41
阅读次数:
407
题意:给定一棵perfect binary tree,将它每一个节点的next指针都指向该节点右边的节点
思路:dfs
在connect一棵树的时候,需要知道这棵树的根节点和它右边的节点
1.将树的根节点和它右边的节点连接起来
2.递归地将左子树connect起来,需要知道左子树节点和右子树节点
3.递归地将右子树connect起来,需要知道右子树节点和根右边的节点的左子树节点
递归函数为:
void connect(TreeLinkNode *root, TreeLinkNode *sibling)
表...
分类:
其他好文 时间:
2014-05-15 07:14:04
阅读次数:
289
题意:给定一棵任意二叉树(不一定是perfect binary tree),将它每一个节点的next指针都指向该节点右边的节点
思路:bfs
这里不能用dfs了,只能用bfs
bfs遍历将同一层的节点存放在同一个数组里,
然后在遍历每个数组,将前面的节点和后面的节点connect起来,
最后一个节点和NULL connect起来
需要定义一个新的struct结构,保存指向每个节点的指针和该节点所在的层
复杂度:时间O(n), 空间O( n)...
分类:
其他好文 时间:
2014-05-15 06:12:13
阅读次数:
294
通过操作指针,与指针做函数参数'实现字串在主串中出现的次数,然后将出现的部分按照要求进行替换...
分类:
其他好文 时间:
2014-05-15 05:58:16
阅读次数:
218
值
描述
url
需使用的自定义光标的 URL。
注释:请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标。
default
默认光标(通常是一个箭头)
auto
默认。浏览器设置的光标。
crosshair
光标呈现为十字线。
pointer
光标呈现为指示链接的指针(一只手)
move
...
分类:
Web程序 时间:
2014-05-15 05:32:35
阅读次数:
1537
在一个有reurn 返回值的函数里 如果申请了一段内存的话(alloc 或者copy) 这个时候不能够release 只能够使用autorelease
在返回到那个被接受到的指针里,由它去进行释放!!
如果是self.obj(或者某些类对应的 SomeClass.obj)这种类型的,就需要把self.去掉(因为这样子的申请出来的内存引用计数会被retain+1了)
...
分类:
移动开发 时间:
2014-05-15 04:40:44
阅读次数:
369
题意:给一个整数序列(可能有负数),求最短的连续序列使得序列之和大于等于整数x;
解法:第一种是On的复杂度:
我们要的是sum[j]-sum[i]>=x,如果有两个决策j = sum[j'],那么j就是没用的。即维护一个sum[j]递增序列。然后每次可以二分查找,但是这里有个特点就是要得到最近的,可以同时维护一个left指针,left指针用于跟进更...
分类:
其他好文 时间:
2014-05-15 03:20:26
阅读次数:
303
在 O(nlogn)的时间内对一个链表进行排序。。明显是要用归并或者快排
第一次知道说原来归并也可以用链表来写,被刷了下三观。。。。。用快慢指针的方法找分界点。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNod...
分类:
其他好文 时间:
2014-05-14 15:03:49
阅读次数:
230
即使使用编译程序提供的所有警告设施,编译程序所发现的错误,也只是程序错误中的一小部分。例如
以下一行代码:
strCopy=memecpy(malloc(length),str,length));
当malloc 调用失败时,返回一个空指针,而memcpy如果没有处理空指针时,程序就会出现错误。编译程序是无法查出
这种或其他类似的错误。同样编译程序也无法查出算法的错误,...
分类:
编程语言 时间:
2014-05-14 14:11:31
阅读次数:
474