面试
xiaofei0859
这个作者很懒,什么都没留下…
展开
-
跳表SkipList
跳表SkipList1.聊一聊跳表作者的其人其事2. 言归正传,跳表简介3. 跳表数据存储模型4. 跳表的代码实现分析5. 论文,代码下载及参考资料 . 聊一聊作者的其人其事 跳表是由William Pugh发明。他在 Communications of the ACM June 1990, 33(6) 668-676 发表了Skip lis转载 2017-07-11 10:02:51 · 254 阅读 · 0 评论 -
QUIC和TCP--为什么多线程下载比单线程快
作者:henrystark henrystark@126.comBlog: http://henrystark.blog.chinaunix.net/日期:20140626本文遵循CC协议:署名-非商业性使用-禁止演绎 2.5(https://creativecommons.org/licenses/by-nc-nd/2.5/cn/)。可以自由拷贝,转载。但转载请保持文档的完整性,注明转载 2017-08-23 22:26:23 · 3380 阅读 · 0 评论 -
两个有序数组的中位数
[LeetCode] Median of Two Sorted Arrays 两个有序数组的中位数 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time转载 2017-08-26 13:55:20 · 427 阅读 · 0 评论 -
在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数
题目的意思很简单,比如说有数组[1,6,9,2,1,5,15,20],那么满足上述条件的元素为1,15,20。分析1.暴力的方法就是从左到右进行遍历,到达某个数字后,在从0开始遍历到当前下标,找出最大的,再从当前下标遍历到尾,找出最小的,然后根据题意比较一下,这个算法为O(n^2)。比较简单的算法就是利用一下额外的空间,保存一下,每个元素右侧的最小值,或者左侧的最大值,转载 2017-08-25 12:07:27 · 2386 阅读 · 0 评论 -
判断一棵树是否是二叉查找树
转载:http://blog.csdn.net/guoyuguang0/article/details/51018249判断一棵树是否是二叉查找树 利用该节点对应的最大值和最小值来判断该节点是否符合二叉查找树的性质。public boolean isValidBST(TreeNode root) { return validateRange(root, Lo转载 2017-08-24 21:34:30 · 492 阅读 · 0 评论 -
循环有序数组中的二分查找 Search in a rotated sorted array
版权声明: GNU General Public License. https://github.com/lucky521二分查找是必须要掌握的技能,适用于有序的、顺序的存储结构。1、可以用它来查找某一个数2、可以用于查找某一个范围。如《二分查找有序数组中某个数的所在范围 Search for a Range》。3、可以用它来查找两个有序数组的中位数。转载 2017-08-24 18:17:25 · 865 阅读 · 0 评论 -
常用算法时间空间复杂度
Hi there! This webpage covers the space and time Big-O complexities of common algorithmsused in Computer Science. When preparing for technical interviews in the past, I found myself spending hours cr转载 2017-08-10 21:51:31 · 2463 阅读 · 0 评论 -
二叉树最近公共父节点
在二叉树中找近期公共父节点。分为两种情况,一种是有父指针,一种没有父指针。1、有父指针这样的情况比較简单。计算两个结点的深度,再把深度大的向上移。移到同一深度。在同一时候向上移动,直到两个结点同样,这样便找到了父节点。这个算法时间复杂度为O(N)。代码实现:#includestruct Node{ int data; Node* left; Nod转载 2017-08-07 19:18:20 · 586 阅读 · 0 评论 -
二叉树中两个节点的最近公共父节点
这个问题可以分为三种情况来考虑:情况一:root未知,但是每个节点都有parent指针此时可以分别从两个节点开始,沿着parent指针走向根节点,得到两个链表,然后求两个链表的第一个公共节点,这个方法很简单,不需要详细解释的。情况二:节点只有左、右指针,没有parent指针,root已知思路:有两种情况,一是要找的这两个节点(a, b),在要遍历的节点(root)的两侧,那么这转载 2017-08-07 19:04:11 · 2158 阅读 · 0 评论 -
SkipList 跳表
转载:http://kenby.iteye.com/blog/1187303为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。 想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参转载 2017-07-10 09:56:45 · 254 阅读 · 0 评论 -
Skip List(跳跃表)原理详解与实现
Skip List(跳跃表)原理详解与实现 转载:http://dsqiu.iteye.com/blog/1705530本文内容框架:§1 Skip List 介绍§2 Skip List 定义以及构造步骤 §3 Skip List 完整实现§4 Skip List 概率分析§5 小结转载 2017-07-10 09:52:55 · 331 阅读 · 0 评论 -
判断一个二叉树是否是平衡二叉树
判断一个二叉树是否是平衡二叉树题目:判断一个二叉排序树是否是平衡二叉树思路:利用递归判断左右子树的深度是否相差1来判断是否是平衡二叉树。 1 #include 2 #include "stdafx.h" 3 4 struct BinaryTreeNode 5 { 6 int m_nValue; 7转载 2017-06-28 09:53:16 · 361 阅读 · 0 评论 -
浅析SkipList跳跃表原理及代码实现
转载:http://blog.csdn.net/ict2014/article/details/17394259SkipList在leveldb以及lucence中都广为使用,是比较高效的数据结构。由于它的代码以及原理实现的简单性,更为人们所接受。我们首先看看SkipList的定义,为什么叫跳跃表?“ Skip lists are data structures that us转载 2017-07-11 16:17:24 · 371 阅读 · 0 评论 -
结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法
转载:http://blog.csdn.net/fengbingchun/article/details/24185217结构体中最后一个成员为[0]长度数组的用法:这是个广泛使用的常见技巧,常用来构成缓冲区。比起指针,用空数组有这样的优势:(1)、不需要初始化,数组名直接就是所在的偏移;(2)、不占任何空间,指针需要占用int长度空间,空数组不占任何空间。“这个数组不占用任何内存”,意味转载 2017-07-11 14:26:05 · 613 阅读 · 0 评论