标题 | 企业笔试题目及答案 |
范文 | 企业笔试题目及答案 笔试(Written Test)是一种与面试对应的测试,是考核应聘者学识水平的重要工具。这种方法可以有效的测量应聘人的基本知识、专业知识、管理知识、综合分析能力和文字表达能力等素质及能力的差异。下面是企业笔试题目及答案,请参考! 腾讯笔试题:统计论坛在线人数分布求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。 一天总共有 3600*24 = 86400秒。 定义一个长度为86400的整数数组int delta[86400],每个整数对应这一秒的人数变化值,可能为正也可能为负。开始时将数组元素都初始化为0。 然后依次读入每个用户的登录时间和退出时间,将与登录时间对应的整数值加1,将与退出时间对应的.整数值减1。 这样处理一遍后数组中存储了每秒中的人数变化情况。 定义另外一个长度为86400的整数数组int online_num[86400],每个整数对应这一秒的论坛在线人数。 假设一天开始时论坛在线人数为0,则第1秒的人数online_num[0] = delta[0]。第n+1秒的人数online_num[n] = online_num[n-1] + delta[n]。 这样我们就获得了一天中任意时间的在线人数。 腾讯笔试题:从10G个数中找到中数在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。 不妨假设10G个整数是64bit的。 2G内存可以存放256M个64bit整数。 我们可以将64bit的整数空间平均分成256M个取值范围,用2G的内存对每个取值范围内出现整数个数进行统计。这样遍历一边10G整数后,我们便知道中数在那个范围内出现,以及这个范围内总共出现了多少个整数。 如果中数所在范围出现的整数比较少,我们就可以对这个范围内的整数进行排序,找到中数。如果这个范围内出现的'整数比较多,我们还可以采用同样的方法将此范围再次分成多个更小的范围(256M=2^28,所以最多需要3次就可以将此范围缩小到1,也就找到了中数)。 腾讯笔试题:两个整数集合A和B,求其交集两个整数集合A和B,求其交集。 1. 读取整数集合A中的整数,将读到的整数插入到map中,并将对应的值设为1。 2. 读取整数集合B中的整数,如果该整数在map中并且值为1,则将此数加入到交集当中,并将在map中的对应值改为2。 通过更改map中的值,避免了将同样的值输出两次。 腾讯笔试题:找出1到10w中没有出现的两个数字 有1到10w这10w个数,去除2个并打乱次序,如何找出那两个数? 申请10w个bit的空间,每个bit代表一个数字是否出现过。 开始时将这10w个bit都初始化为0,表示所有数字都没有出现过。 然后依次读入已经打乱循序的数字,并将对应的'bit设为1。 当处理完所有数字后,根据为0的bit得出没有出现的数字。 首先计算1到10w的和,平方和。 然后计算给定数字的和,平方和。 两次的到的数字相减,可以得到这两个数字的和,平方和。 所以我们有 x + y = n x^2 + y^2 = m 解方程可以得到x和y的值。 腾讯笔试题:需要多少只小白鼠才能在24小时内找到毒药 有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒? 最容易想到的就是用1000只小白鼠,每只喝一瓶。但显然这不是最好答案。 既然每只小白鼠喝一瓶不是最好答案,那就应该每只小白鼠喝多瓶。那每只应该喝多少瓶呢? 首先让我们换种问法,如果有x只小白鼠,那么24小时内可以从多少瓶水中找出那瓶有毒的? 由于每只小白鼠都只有死或者活这两种结果,所以x只小白鼠最大可以表示2^x种结果。如果让每种结果都对应到某瓶水有毒,那么也就可以从2^x瓶水中找到有毒的那瓶水。那如何来实现这种对应关系呢? 第一只小白鼠喝第1到2^(x-1)瓶,第二只小白鼠喝第1到第2^(x-2)和第2^(x-1)+1到第2^(x-1) + 2^(x-2)瓶....以此类推。 回到此题,总过1000瓶水,所以需要最少10只小白鼠。 腾讯笔试题:根据上排的数填写下排的数,并满足要求。根据上排给出十个数,在其下排填出对应的十个数, 要求下排每个数都是上排对应位置的数在下排出现的次数。上排的`数:0,1,2,3,4,5,6,7,8,9。 腾讯笔试题:判断数字是否出现在40亿个数中?给40亿个不重复的unsigned int的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中? 答案: unsigned int 的取值范围是0到2^32-1。我们可以申请连续的2^32/8=512M的内存,用每一个bit对应一个unsigned int数字。首先将512M内存都初始化为0,然后每处理一个数字就将其对应的bit设置为1。当需要查询时,直接找到对应bit,看其值是0还是1即 可。 1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句#define Max(a,b) ( a/b)?a:b 2、如何输出源文件的标题和目前执行行的行数 int line = __LINE__; char *file = __FILE__; cout<<"file name is "<<(file)<<",line is "< 3、两个数相乘,小数点后位数没有限制,请写一个高精度算法 4、写一个病毒 while (1) { int *p = new int[10000000]; } 5、不使用额外空间,将 A,B两链表的`元素交*归并 6、将树序列化 转存在数组或 链表中 struct st{ int i; short s; char c; }; sizeof(struct st); 7、 char * p1; void * p2; int p3; char p4[10]; sizeof(p1...p4) =? 8、 4,4,4,10 二分查找 快速排序 双向链表的删除结点 面试基本上都是和项目相关的,并当场说几个程序题的输出,不能用草稿纸 |
随便看 |
|
范文网提供海量优质实用美文,包含随笔、日记、古诗文、实用文、总结、计划、祝福语、句子、职场文档等范文,为您写作提供指导和优质素材。