随笔分类 - 笔试/面试
摘要:一个堆可以被看作一棵二叉树和一个数组。堆排序主要分为以下几步:建堆,取出堆顶元素,调整堆,递归处理。本文中给出了在数组上建堆和调整以及堆排序的相关代码实现和实现过程的图示,以供参考。
阅读全文
摘要:快速排序是笔试面试经常问到的一个排序。因此首先来复习快速排序。
时间复杂度:O(n*lgn)
最坏:O(n^2)
空间复杂度:O(lgn),最坏O(n)
不稳定。
阅读全文
摘要:有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序。
阅读全文
摘要:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
阅读全文
摘要:一.简答题1.简述iso的7层设计解析:应用层:提供应用程序间通信表示层:处理数据格式、数据加密等会话层:建立、维护和管理会话运输层:建立主机端到端连接网络层:寻址和路由选择数据链路层:介质访问,链路管理物理层:比特流传输 2.如何在多个进程间进行数据共享(至少写出3种)Linux下:管道信号量共享内存消息队列本地域socketWindows下:文件映射;文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待。因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容。共享内存:Win32 API中共享内存(SharedMemo
阅读全文
摘要:第一部分单选题(前10题,每题2分;后10题,每题3分。选对得满分,选错倒扣1分,不选得0分)1、一次内存访问,SSD硬盘访问和SATA硬盘随机访问的时间分别是()A、几微秒,几毫秒,几十毫秒B、几十纳秒,几十毫秒,几十毫秒C、几十纳秒,几十微秒,几十毫秒D、几微秒,几十微秒,几十毫秒解析:内存访问速度通常在50ns到80ns范围内,SSD硬盘的访问速度一般是SATA硬盘的一千多倍,所以答案选C2、8进制数256,转化成7进制数是(B)A、356B、336C、338D、346解析:进制转换 八进制256转换为十进制:2*8*8 + 5*8 + 6*1 = 174 十进制174转换为七进制...
阅读全文
摘要:第一部分:单选题1.假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数A:h(K)=K/N;B:h(K)=1;C:h(K)=KmodN;D:h(K)=(K+rand(N))modN,rand(N)返回0到N-1的整数解析: 首先,D最复杂,当然首选D。。 D选项使用的是随机数法+除留余数法。开放地扯法: 公式Hi=(H(key)+di) MOD m i=1,2,...,k(k2012->1006->503->502->251->250->125->124->62->31->30->15->14->7-
阅读全文
摘要:把基本经典的书籍认真看看,那些笔试面试的都不是什么问题。但是,专门的突击和训练还是很有必要的。好的offer是可以通过充分的准备刷到的。我们就从各大公司的套题开始刷起吧,中间再穿插一些专题。今天先看看腾讯的2014年校招的软开笔试题。考试时长:120分钟一不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分)1已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:()A.CFHGEBDAB.CDFEGHBAC.FGHCDEBAD.CFHGEDBA解析:由先序遍历序列和中序遍历序列可以唯一确定树的结构 步骤:由先序序列确定根
阅读全文
摘要:问题描述;如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。算法很容易想得到:如果根节点的左子树或右子树为空,那么最大距离即为树的深度否则,最大距离等于左子树的深度+右子树的深度虽然这个问题很简单,但是在实现的时候,还树出了点问题,导致卡了两天才实现。原因:1 树的基本操作的实现不熟练2 对递归的使用不熟悉3 在递归建树的时候,输入序列一直没搞清楚。。经验:1 遇到树,首先想到的是递归处理2 使用递归,一定要有一个终止条件3 强类型语言真心不方便,比如节点值设置为整形,
阅读全文
摘要:动动手才发现自己现在的在C/C++方向的几个问题:对自己的入门语言C语言变得非常陌生编程的思维固定在找既有的方法,主要原因是python写多了,基本上所有常见的问题,都有现成的方法,让自己变得懒惰了对C++的实际应用不熟练,虽然一直在看C++相关的东西,但是实战经验还是太少,在后面会更多的使用C++来实现一些算法由于python 的链表,字典设计的非常方便,所以在数据结构方面也缺乏训练和提高今天先做一个简单的问题。问题描述:翻转句子中单词的顺序输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理例如:输入“I am a
阅读全文
摘要:问题聚焦:每个ID记录有两个备份。在某个时间,得到一个数据文件ID的列表,快速找出这个表中仅出现一次的ID。问题转化:有很多的ID,其中只有一个ID出现的次数小于2,其他正常ID出现的次数都等于2,问如何找到这个次数为1的ID.解法一:暴力解决方法:遍历列表,利用一个map记下每次出现的ID和出现次数+1,遍历完毕之后,出现次数小于2的ID就是我们想要的结果。时间复杂度:O(N)空间复杂度:O(N)缺点:当记录N多达几G甚至几十G时,空间复杂度将会成为瓶颈。解法二:两次即删方法:遍历列表,利用变长数组记录每个ID,每次遇到一个ID,就向变长数组中增加一个元素,如果这个ID出现的次数为2,那么就
阅读全文