
面试
文章平均质量分 95
nwpulei
学习中
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
求链表的节点个数 链表可能有环
单向链表的长度定义为链表中的节点个数。如果链表中没有环则用如下算法 链表节点定义如下 struct node { int v; node *next; };算法如下 /* 返回链表的长度 链表为空 返回0 */ size_t listLen(node * p) { size_t num = 0; while (p!=NULL) { num++; p = p->n原创 2012-10-29 22:52:11 · 3342 阅读 · 0 评论 -
两个链表的第一个公共节点
已知有两个链表,他们可能相交于某一点,求出该点。 方法1.对于第一个链表,每访问一个节点,对该节点做标记。访问第二个链表,如果该元素已经访问,则第一个这样的元素就是所求点。 由于两个链表都访问了一遍,因此时间复杂度O(m+n),空间复杂度O(m)或O(n) 方法2.我们定义节点的距离为节点到链表开始所经过的节点数。如果两个链表长度相同,则相交节点其在两个链表上的距离一定相等。对于长度不同的两原创 2012-10-29 22:00:35 · 6654 阅读 · 1 评论 -
等概率数字筛选问题
如何等概率的从N个元素中选取出K个元素? 从1....n中随机输出m个不重复的数。(迅雷2011.10.21笔试题) 算法1 knuth(int n, int m) { for (int i=0; i<n; i++) { if ( rand_n()<m ) // rand_n()为生成[0,n)这个区间内的随机数原创 2012-10-29 16:22:53 · 4385 阅读 · 2 评论 -
判断一个数字序列是BST后序遍历的结果
相传此乃网易二面题 要求现场手写代码判断一个数字序列是BST后序遍历的结果。 来源1来源2 如图所示 对于后续遍历的排序二叉树应具有上面的一个不等式性质 以及 根节点为最后一个节点的性质 因此代码如下 //序列array有n个元素 //如果这n个元素是二叉排序树的后续遍历结果 返回true //否则 返回false bool isBST(int * array, size_t原创 2012-10-21 17:25:57 · 3917 阅读 · 1 评论 -
设计模式:单件模式
参加了多场笔试,在笔试题目中偶尔会问什么单件模式。在网上搜了之后了解到这是设计模式中的一种设计方法。单件模式可用于消除全局这样的需求。 Q.什么是单件模式? A.单件模式是一种用于确保整个应用程序中只有一个实例,且这个实例所占资源在整个应用程序中是共享时的程序设计方法。 Q在面向对象中如何设计出只有一个实例的对象呢? A.每个对象的产生都要调用构造函数,对构造函数进行限制有可能能达到要求。原创 2012-10-25 11:52:49 · 1526 阅读 · 1 评论 -
计算单向链表的的长度,有可能有环存在
单向链表的长度定义为链表中的节点个数。如果链表中没有环则用如下算法 链表节点定义如下 struct node { int v; node *next; };算法如下 /* 返回链表的长度 链表为空 返回0 */ size_t listLen(node * p) { size_t num = 0; while (p!=NULL) { num++; p = p->next;原创 2012-10-29 22:50:59 · 6419 阅读 · 7 评论 -
[shell]数据的并集和差集
统计数据时经常会有这样的要求,有原创 2014-08-14 12:57:16 · 3111 阅读 · 0 评论