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