囧啊囧。lca的求法太多了倍增,tarjan,st,lct,hld....后边三个我就不写了,其中st我没写过,估计用不上,在线用倍增,离线用tarjan就行了。嗯。第一种,倍增(nlogn,在线):倍增的思想用在树上,即可以求出lca。我们维护二维数组,f[i][j],表示i号点的第2^j号祖先,...
分类:
其他好文 时间:
2014-08-21 22:42:24
阅读次数:
278
Sort a linked list inO(nlogn) time using constant space complexity.1st ( 7 tries)/** * Definition for singly-linked list. * struct ListNode { * in...
分类:
其他好文 时间:
2014-08-20 14:03:02
阅读次数:
198
题意:求最长上升子序列,n=100000思路:O(N^2)铁定超时啊。。。。利用贪心的思想去找答案。利用栈,每次输入数据检查栈,二分查找替换掉最小比他大的数据,这样得到的栈就是更优的。这个题目确实不错,思路很好#include #include #include #include #include ...
分类:
其他好文 时间:
2014-08-19 20:33:25
阅读次数:
267
Boring SumTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 60Accepted Submission(s): 30 Problem ...
分类:
其他好文 时间:
2014-08-19 20:25:15
阅读次数:
200
题目链接:Turbo Sort用java自带O(NlogN)的排序就可以,java要特别注意输入输出。输入用BufferedReader,输出用printWriter。printWriter的速度比System.out快很多,参考StackOverflow。代码: 1 import java.io....
分类:
其他好文 时间:
2014-08-19 12:19:14
阅读次数:
188
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(innerloop)可以在大部分的架构上很有效率地被实现出来。快速排序使用...
分类:
其他好文 时间:
2014-08-19 10:37:34
阅读次数:
200
都是两种效率高而且常用的排序方法,今天来总结下。 先说快排: 首先,快速排序的时间复杂度为nlogn,其思想实质为分治法。而这分治法的基本思想为以下三点: 1.先从数列中取出一个基准数。 2.在分治的过程中,比这个基准数小的数全部放到这个基准数的左边,反之则放到右边。 3.然后再对由第...
分类:
其他好文 时间:
2014-08-17 02:22:30
阅读次数:
186
STL中,关联式容器的内部结构是一颗平衡二叉树,以便获得良好的搜索效率。红黑树是平衡二叉树的一种,它不像AVL树那样要求绝对平衡,降低了对旋转的要求,但是其性能并没有下降很多,它的搜索、插入、删除都能以O(nlogn)时间完成。平衡可以在一次或者两次旋转解决,是“性价比”很高的平衡二叉树。...
分类:
其他好文 时间:
2014-08-15 22:36:59
阅读次数:
445
This problem can be solve in simpler O(NsqrtN) solution, but I will describe O(NlogN) one.
We will solve this problem in offline. For each x (0?≤?x?n) we
should keep all the queries that end in x...
分类:
其他好文 时间:
2014-08-15 21:11:49
阅读次数:
292
做算法分析的时候经常用到各种时间复杂度如O(n), O(logn), O(nlogn), O(n^2), ... 它们之间到底有多大的差别呢?下面这张图是一个直观的表达:可见,各个常用的时间复杂度之间都存在着巨大的差异。从O(nlogn)到O(n),从O(n)到O(logn),都是性能上的巨大飞跃。...
分类:
其他好文 时间:
2014-08-14 13:23:38
阅读次数:
164