笔试面试专题
文章平均质量分 55
快乐的霖霖
一个人默默的奋斗者
展开
-
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路(强烈顶,学习榜样!)
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路(强烈顶,学习榜样!)1,简介毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾。 首先说说我拿到的offer情况:微软,3面->终面,搞定百度,3面->终面,口头offer搜狗,2面,悲剧腾讯,1面,悲剧转载 2013-04-20 09:28:48 · 3929 阅读 · 1 评论 -
一道创新工场面试题详解:共打了多少鱼?
一道创新工场面试题详解:共打了多少鱼?题目:abcde五人打渔,打完睡觉,a先醒来,扔掉1条鱼,把剩下的均分成5分,拿一份走了;b再醒来,也扔掉1条,把剩下的均分成5份,拿一份走了;然后cde都按上面的方法取鱼。问他们一共打了多少条鱼?解法:这道题共打了多少鱼的结果有很多,但求最少打的鱼的结果是3121条鱼。可以验证一下3121结果是否正确。a开始拿鱼: (3原创 2013-05-02 16:42:27 · 1743 阅读 · 2 评论 -
淘宝2011.9.21校园招聘笔试题选
淘宝2011.9.21校园招聘笔试题选综合题1. 有一颗结构如下的树,对其做镜像反转后如下,请写出能实现该功能的代码。注意:请勿对该树做任何假设,它不一定是平衡树,也不一定有序。 1 1 / | \ / | \ 2 3 4原创 2013-05-03 10:53:10 · 1418 阅读 · 0 评论 -
找出数组中重复次数最多的元素并打印
找出数组中重复次数最多的元素并打印思路:对于这道题应该先进行排序,然后遍历。代码:#include#includeint int_compare(const void *x1, const void *x2){ int* a=(int*)x1; int* b=(int*)x2; return (*a-*b);}void findremax(in原创 2013-05-06 17:31:21 · 2484 阅读 · 0 评论 -
阿里巴巴2013实习生笔试题精选2道算法题
阿里巴巴2013实习生笔试题精选2道算法题1. 有N个人,其中一个明星和n-1个群众,群众都认识明星,明星不认识任何群众,群众和群众之间的认识关系不知道,现在如果你是机器人R2T2,你每次问一个人是否认识另外一个人的代价为0(1),试设计一种算法找出明星,并给出时间复杂度。解析:这个问题等价于找未知序列数中的最小数,我们将reg这个函数等价为以下过程:,如果i认原创 2013-05-06 14:42:13 · 6186 阅读 · 10 评论 -
写代码,反转一个单链表,分别以迭代和递归的形式来实现
写代码,反转一个单链表,分别以非递归和递归的形式来实现数据结构:typedef struct node LinkNode;struct node{ int data; LinkNode* next;};返回新链表头结点:LinkNode *reverse_link(LinkNode *head)LinkNode *reve原创 2013-05-12 21:12:29 · 1985 阅读 · 0 评论 -
一步步构建大型网站架构
一步步构建大型网站架构转载于:http://blog.csdn.net/luqin1988/article/details/8983697 之前我简单向大家介绍了各个知名大型网站的架构,亿万用户网站MySpace的成功秘密、Flickr架构、YouTube网站架构、PlentyOfFish 网站架构学习、WikiPedia技术架构学习笔记。这几个都很典型,我们可转载 2013-05-31 15:06:17 · 1199 阅读 · 0 评论 -
网易游戏2011.10.15校园招聘会笔试题
网易游戏2011.10.15校园招聘会笔试题转载于: http://blog.csdn.net/hackbuteer1/article/details/68785701、对于一个内存地址是32位、内存页是8KB的系统。0X0005F123这个地址的页号与页内偏移分别是多少。页面大小是8KB,那么页内偏移量是从0x0000(0)~ 0x1FFF(2的13次方转载 2013-08-19 23:47:59 · 740 阅读 · 0 评论 -
算法系列(来自网上一个博客)
算法系列(来自网上一个博客) 下面只作为我看这个算法系列的进度,网友们不要拍砖!真心推荐该算法系列,真的挺好~ 1. 算法系列之一:GOOGLE方程式 http://blog.csdn.net/orbit/article/details/6529277 (2013.8.17完成) 2. 算法系列之二:三只水桶等分原创 2013-08-18 11:00:26 · 1118 阅读 · 0 评论 -
关系数据库的特点
关系数据库的特点数据库管理系统将具有一定结构的数据组成一个集合,它主要具有以下几个特点:1. 数据的结构化 数据库中的数据并不是杂乱无章、毫不相干的,它们具有一定的组织结构,属于同一集合的数据具有相似的特征。2. 数据的共享性 在一个单位的各个部门之间,存在着大量的重复信息。使用数据库的目的就是要统一管理这些信息,减少冗余度,使各个部门共同享有相同的数据。3. 数据原创 2013-08-21 17:11:24 · 7840 阅读 · 1 评论 -
百度2011.10.16校园招聘会笔试题
百度2011.10.16校园招聘会笔试题网址:1. http://www.51projob.com/a/baidu/20120913/675.html2. http://blog.csdn.net/hackbuteer1/article/details/68786273. http://blog.csdn.net/monkeyandy/article/details/763原创 2013-08-21 16:03:08 · 894 阅读 · 0 评论 -
2011.10.17百度面试题
2011.10.17百度面试题1. 进程切换需要注意哪些问题?答: 保存处理器PC寄存器的值到被中止进程的私有堆栈; 保存处理器PSW寄存器的值到被中止进程的私有堆栈; 保存处理器SP寄存器的值到被中止进程的进程控制块;保存处理器其他寄存器的值到被中止进程的私有堆栈; 自待运行进程的进程控制块取SP值并存入处理器的寄存器SP; 自待运行进程的私有堆栈原创 2013-08-22 23:23:52 · 801 阅读 · 0 评论 -
海量数据随机抽样问题(蓄水池问题)
海量数据随机抽样问题(蓄水池问题)随机抽样问题表示如下:要求从N个元素中随机的抽取k个元素,其中N无法确定。这种应用的场景一般是数据流的情况下,由于数据只能被读取一次,而且数据量很大,并不能全部保存,因此数据量N是无法在抽样开始时确定的;但又要保持随机性,于是有了这个问题。所以搜索网站有时候会问这样的问题。这里的核心问题就是“随机”,怎么才能是随机的抽取元素呢?我们设想,买转载 2013-08-23 09:27:41 · 1042 阅读 · 0 评论 -
编写C++中的两个类 一个只能在栈中分配空间 一个只能在堆中分配(腾讯2012面试题)
编写C++中的两个类 一个只能在栈中分配空间 一个只能在堆中分配(腾讯2012面试题)这道题挺好的~ //HeapOnly.cpp #include using namespace std; class HeapOnly { public: HeapOnly() { cout <<原创 2013-08-23 14:42:59 · 1225 阅读 · 0 评论 -
对链表进行归并排序
对链表进行归并排序 当我们需要对链表进行排序时,由于不能对它的元素进行随机访问,所以更适合使用归并排序,大名鼎鼎的快速排序用到链表上,效率也很低,原因还是在于不能对链表中的元素进行随机访问,同理,采用堆排序更是不可能的事情。 算法具体实现时需要一个指向头节点(链表的第一个节点,链表中不包含额外的一个节点来作头节点)的指针,这是因为在算转载 2013-08-23 17:20:21 · 869 阅读 · 0 评论 -
把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间题目以及要求:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。 我的实现类似冒泡排序。代码为:#include#includeint isUpperAlpha(char c){ if(c>='A' && c<='Z'){原创 2013-08-23 16:01:50 · 2167 阅读 · 0 评论 -
可递归锁与非递归锁
可递归锁与非递归锁概述最常见的进程/线程的同步方法有互斥锁(或称互斥量Mutex),读写锁(rdlock),条件变量(cond),信号量(Semophore)等。在Windows系统中,临界区(Critical Section)和事件对象(Event)也是常用的同步方法。 简单的说,互斥锁保护了一个临界区,在这个临界区中,一次最多只能进入一个线程。如果有多个进程在同原创 2013-08-24 16:59:55 · 1859 阅读 · 0 评论 -
多线程中递归锁的实现
多线程中递归锁的实现在上一篇文章中,我已经阐述了多线程中简单锁的实现,可在结束的时候,我就提了那么一个问题,那就是如果在一个链表中进行插入时,要进行查询的操作,如果只是简单的锁,是没法实现的。所以“递归锁”就浮现于世了。可能有些人看到递归这两个字,有点傻了眼,其实也没什么的,简单的介绍,就是进行简单的计数而已。刚开始引用锁的时候,就产生它,当在锁没有解开的时候,还要继续用锁,就简单转载 2013-08-24 18:27:47 · 1438 阅读 · 0 评论 -
多线程中锁的实现
多线程中递归锁的实现所谓"锁",就是为了让自己独自占有空间,在自己没用完之前,不让别人来占用自己的资源.现在的操作系统,无论是WINDOWS,还是UNIX等其他操作系统.都采用多线程的环境.这极大提高了任务的执行速度,而且不会影响其他事务的执行.但是它们的执行是靠时间片的轮转的,如果某一个线程没有执行完,可它的时间片用完了,就会被挂起来,直到轮到它的下个时间片.假如继续让它们这转载 2013-08-24 18:16:05 · 1194 阅读 · 0 评论 -
TCP的TIME_WAIT状态
TCP的TIME_WAIT状态 主动关闭的Socket端会进入TIME_WAIT状态,并且持续2MSL时间长度,MSL就是maximum segment lifetime(最大分节生命期),这是一个IP数据包能在互联网上生存的最长时间,超过这个时间将在网络中消失。MSL在RFC 1122上建议是2分钟,而源自berkeley的TCP实现传统上使用30秒,因而,TIME_WAI原创 2013-08-23 18:31:09 · 776 阅读 · 0 评论 -
TCP交互数据流与TCP成块数据流
TCP交互数据流与TCP成块数据流目前建立在TCP协议上的网络协议特别多,有telnet,ssh,有ftp,有http等等。这些协议又可以根据数据吞吐量来大致分成两大类:(1)交互数据类型,例如telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文字等等。(2)数据成块类型,例如ftp,这种类型的协议要求TCP能尽量的运载数据,把原创 2013-08-25 15:42:05 · 1405 阅读 · 0 评论 -
Nagle算法
Nagle算法 Nagle算法要求一个TCP连接的通信双方在任意时刻都最多只能发送一个未被确认的TCP报文段,在该TCP报文段的确认到达之前不能发送其他TCP报文段。另一方面,发送方在等待确认的同时收集本端需要发送的微量数据,并在确认到来时以一个TCP报文段将它们全部发出。这样就极大地减少了网络上的微小TCP报文段的数量。该算法的另一个优点在于其自适应性:确认到达得越快,原创 2013-08-25 15:13:58 · 1163 阅读 · 0 评论 -
SO_LINGER选项
SO_LINGER选项 SO_LINGER选项用于控制close系统调用在关闭TCP连接时的行为。默认情况下,当我们使用close系统调用来关闭一个socket时,close将立即返回,TCP模块负责把该socket对应的TCP发送缓冲区中残留的数据发送给对方。 在设置(获取)SO_LINGER选项的值时,我们需要给setsockopt(getsockopt)系原创 2013-08-25 20:55:21 · 1109 阅读 · 0 评论 -
用户级线程和内核级线程
用户级线程和内核级线程 根据在用户空间还是在核心实现多线程机制,线程又被分为用户级线程(User Level Thread)和内核级线程(Kernel Level Thread)。 有关线程的所有管理工作都有在用户级实现的线程库来支持。用户级线程库是用于用户级线程管理的例程包,支持线程的创建、终止,以及调度线程的执行并保存和恢复线程的上下文,这些操作原创 2013-08-27 14:07:23 · 1331 阅读 · 0 评论 -
linux上的一些系统监测工具简介
linux上的一些系统监测工具简介 在linux中提供了很多有用的工具,以方便开发人员调试和评测服务器程序。下面介绍几个常用的工具:tcpdump,nc,strace,lfos,netstat,vmstat,ifstat和mpstat。1. tcpdump tcpdump是一个网络抓包工具,它提供了大量的选项,用以过滤数据包或者定制输出格式。具体见:h原创 2013-08-27 19:49:30 · 1272 阅读 · 0 评论 -
1分钟内用户上线的数目是60万,如果用户在5分钟内重复上线,就给他发警告,问如何设计?
1分钟内用户上线的数目是60万,如果用户在5分钟内重复上线,就给他发警告,问如何设计? 这是我在网上找到的腾讯公司的一道面试题,觉得有点价值,所以简单分析下,欢迎提建议。 题目:1分钟内用户上线的数目是60万,如果用户在5分钟内重复上线,就给他发警告,问如何设计? 考虑:要判断用户是否在5分内重复上线,那么至少要(也只需要)保存距当前时刻5分钟内的登录用户的原创 2013-08-16 13:20:12 · 2061 阅读 · 0 评论 -
gdb调试多进程程序和多线程程序
gdb调试多进程程序和多线程程序 平时一般用gdb直接调试短小的程序,好像我还没调试过多进程和多线程程序呢。 1. gdb调试多进程程序 如果一个进程通过fork系统调用创建了子进程,gdb会继续调试原来的进程,子进程则正常运行。常用的有两种方法调试子进程。 第一种:单独调试子进程 子进程在本质上也是一个进程,因此我们可以用gdb调试方法来调试。原创 2013-08-27 21:02:33 · 1536 阅读 · 0 评论 -
单线程服务器和多线程服务器的常用编程模型
单线程服务器和多线程服务器的常用编程模型1. 单线程服务器编程模型 在高性能的网络程序中,使用最广泛的的要数"non-blocking IO+IO multiplexing"这种模型,即Reactor模式。2. 多线程服务器编程模型 大概有这么几种: 1. 每个请求创建一个线程,使用阻塞式IO操作。 2. 使用线程池,原创 2013-08-28 14:03:01 · 1717 阅读 · 0 评论 -
一道有趣的GOOGLE面试题——找出至少一个重复元素
一道有趣的GOOGLE面试题——找出至少一个重复元素题目:一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间。 这个题目要求用O(n)的时间复杂度,这意味着只能遍历数组一次。同时还要寻找重复元素,很容易想到建立哈希表来完成,遍历数组时将每个元素映射到哈希表中,如果哈希表中已经存在这个元素则说明转载 2013-08-17 15:39:53 · 1774 阅读 · 0 评论 -
从归并排序到数列的逆序数对(微软笔试题)
从归并排序到数列的逆序数对(微软笔试题)首先来看看原题 微软2010年笔试题在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序数对。一个排列中逆序的总数就称为这个排列的逆序数。如{2,4,3,1}中,2和1,4和3,4和1,3和1是逆序数对,因此整个数组的逆序数对个数为4,现在给定一数组,要求统计出该数组的逆转载 2013-08-17 14:09:12 · 911 阅读 · 0 评论 -
秒杀linux下系统调用fork()面试题
秒杀linux下系统调用fork()面试题第一道题(在之前博客也写过这道题:http://blog.csdn.net/chdhust/article/details/8535915):题目:请问下面的程序一共输出多少个“-”?1234567891011121314#include原创 2013-08-30 11:06:03 · 4792 阅读 · 3 评论 -
等概率随机函数面试题总结
等概率随机函数面试题总结 在面试中也常考等概率随机函数的题目,所以很重要,特此整理下,资料全来自网上。1. 几道热身等概率随机函数题首先我们来一道最简单的题目作为引子1、已知有一个随机函数rand_0_and_1_with_p(),它能以概率p产生0,以概率1 - p产生1,只使用该函数,设计一新的随机函数,要求以等概率产生1和0。我们知道,运行原创 2013-08-30 15:03:47 · 3694 阅读 · 1 评论 -
如果给定一个数组arr[0,...N-1],要求找出相邻两个数的最大差值
如果给定一个数组arr[0,...N-1],要求找出相邻两个数的最大差值 题目: 如果给定一个数组arr[0,...,N-1],要求找出相邻两个数的最大差值。 对于数X和Y,如果不存在其他的数组中的数在[x,y]区间内,则X和y是相邻的。 这道题来源于《编程之美》2.11节扩展问题,看到书上讲的方法,让我觉得是不是复杂了些了呢。原创 2013-08-30 21:49:36 · 4143 阅读 · 0 评论 -
编程之美——寻找最近点对
编程之美——寻找最近点对 参考:http://www.cnblogs.com/justinzhang/archive/2012/04/25/2470405.html转载 2012-12-08 14:10:26 · 1041 阅读 · 0 评论 -
寻找最远点对
寻找最远点对问题给定平面上N个点的坐标,找出距离最远的两个点。分析类似于“最近点对问题”,这个问题也可以用枚举的方法求解,时间复杂度O(n^2)。“寻找最近点对”是用到分治策略降低复杂度,而“寻找最远点对”可利用几何性质。注意到:对于平面上有n个点,这一对最远点必然存在于这n个点所构成的一个凸包上(证明略),那么可以排除大量点,如下图所示:在得到凸包以后原创 2013-08-30 20:55:54 · 2072 阅读 · 0 评论 -
宏与内联(inline)的区别
宏与内联(inline)的区别(1)、宏只做简单的字符串替换,函数是参数传递,所以必然有参数类型检查(支持各种类型,而不是只有字符串)。(2)、宏不经计算而直接替换参数,函数调用则是将参数表达式求值再传递给形参。(3)、宏在编译前进行,即先替换再编译。而函数是编译后,在执行时才调用的。宏占编译时间,而函数占执行时间。(4)、宏参数不占空间,因为只做字符串替换,而函数原创 2013-09-08 19:45:44 · 1323 阅读 · 0 评论 -
“一步千里”之数组找数
“一步千里”之数组找数题目:有这样一个数组A,大小为n,相邻元素差的绝对值都是1。如:A={4,5,6,5,6,7,8,9,10,9}。现在,给定A和目标整数t,请找到t在A中的位置。除了依次遍历,还有更好的方法么?数组第一个数为array[0], 要找的数为y,设t = abs(y - array[0])。由于每个相邻的数字之差的绝对值为1。故第t个位置之前的数肯定都转载 2013-09-07 19:42:30 · 1011 阅读 · 0 评论 -
cookie 和session 的区别
cookie 和session 的区别cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。cookie 和session 的区别:1、cookie数据存放在客户的浏览器上,session数据放在服务器上。2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到原创 2013-09-02 19:25:59 · 1107 阅读 · 0 评论 -
轻松搞定面试中的二叉树题目
轻松搞定面试中的二叉树题目树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,当然有些题目非递归解法也应该掌握,如非递归遍历节点等等。本文努力对二叉树相关题目做一个较转载 2013-09-02 16:03:39 · 1248 阅读 · 0 评论 -
2013豆瓣校园招聘研发类笔试题
2013豆瓣校园招聘研发类笔试题1、将一个递归算法改为对应的非递归算法时,通常需要使用()A、优先队列 B、队列 C、循环队列 D、栈2、爸爸、妈妈、妹妹、小强,至少两个人同一生肖的概率是多少?A、41/96 B、55/96 C、72/128 D、90/1283、已知*p=NULL, *q=new char转载 2013-09-08 22:10:42 · 1106 阅读 · 0 评论