百度校园招聘笔试题目.doc

上传人:scccc 文档编号:12403589 上传时间:2021-12-03 格式:DOC 页数:9 大小:26.50KB
返回 下载 相关 举报
百度校园招聘笔试题目.doc_第1页
第1页 / 共9页
百度校园招聘笔试题目.doc_第2页
第2页 / 共9页
百度校园招聘笔试题目.doc_第3页
第3页 / 共9页
百度校园招聘笔试题目.doc_第4页
第4页 / 共9页
百度校园招聘笔试题目.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《百度校园招聘笔试题目.doc》由会员分享,可在线阅读,更多相关《百度校园招聘笔试题目.doc(9页珍藏版)》请在三一文库上搜索。

1、百度校园招聘笔试题目百度校园招聘题目是由应届毕业生网整理推荐的,欢迎收看1、实现一个函数,对一个正整数 n,算得到1需要的最少操作 次数。操作规则为:如果n为偶数,将其除以2 ;如果n为奇数,可 以加1或减1 ;一直处理下去。例子:func(7) = 4,可以证明最少需要4次运算9n-1 6n/2 3n-1 2n/2 1要求:实现函数(实现尽可能高效)int func(unsign int n) ; n为第二种情况下-1和+1最终需要的步数相同。所以在??01的情况下, 应该选择-1操作。*如果最后几位是?011,则有可能为?0011 ,?11111011。在第一种情况下,+1和-1最终需要的

2、步数相同;在第二种情况下+1 步数更少些。所以在?011的情况下,应该选择+1操作。*如果最后有更多的连续1,也应该选择+1操作如果最后剩下的各位都是1,则有11时应该选择-1 ; 111时+1和-1相同;1111时应选择+1 ;大于四个1时也应该选择+1 ;由以上的分析可知,奇数的时候加1或减1,完全取决于二进制 的后两位,如果后两位是10、00那么肯定是偶数,选择除以2,如 果后两位是01、11,那么选择结果会不一样的,如果是*01,那 么选择减1,如果是*11 ,那么选择加1,特殊情况是就是n是3 的时候,选择减1操作。2、找到满足条件的数组给定函数d(n)二n+n 的各位之和,n为正整

3、数,如 d(78)=78+7+8=93 。这样这个函数可以看成一个生成器,如 93可 以看成由78生成。定义数A:数A找不到一个数B可以由d(B)=A ,即A不能由其 他数生成。现在要写程序,找出1至10000里的所有符合数A定义 的数。回答:申请一个长度为10000的bool数组,每个元素代表对应的值是 否可以有其它数生成。开始时将数组中的值都初始化为false。由于大于10000的数的生成数必定大于10000,所以我们只需 遍历1到10000中的数,计算生成数,并将 bool数组中对应的值 设置为true,表示这个数可以有其它数生成。最后bool数组中值为false的位置对应的整数就是不能

4、由其它 数生成的。&n bsp;&n bsp;3、一个大的含有 50M 个URL的记录,一个小的含有 500个 URL的记录,找出两个记录里相同的 URL。回答:首先使用包含500个url的文件创建一个hash_set。然后遍历50M的url记录,如果url在hash_set中,则输出此 url并从hash_set中删除这个url。所有输出的url就是两个记录里相同的url。4、海量日志数据,提取出某日访问百度次数最多的那个IP。回答:如果日志文件足够的大,大到不能完全加载到内存中的话。那么可以考虑分而治之的策略,按照IP地址的hash(IP)%1024值,将海量日志存储到10

5、24个小文件中。每个小文件最多包含 4M个IP地址。对于每个小文件,可以构建一个IP作为key,出现次数作为value的hash_map,并记录当前出现次数最多的1个IP地址。有了 1024个小文件中的出现次数最多的IP,我们就可以轻松得到总体上出现次数最多的IP5、有10个文件,每个文件1G,每个文件的每一行都存放的是 用户的query,每个文件的query都可能重复。如何按照query的 频度排序?回答:1) 读取10个文件,按照hash(query)%10 的结果将query 写到对应的文件中。这样我们就有了 10个大小约为1G的文件。任 意一个query只会出现在某个文件中。2) 对于

6、1 )中获得的10个文件,分别进行如下操作-禾【J用 hash_map ( query,query_count )来统计每个 query 出现的次数。-利用堆排序算法对query按照出现次数进行排序。-将排序好的query输出的文件中。这样我们就获得了 10个文件,每个文件中都是按频率排序好 的 query。3)对2)中获得的10个文件进行归并排序,并将最终结果输 出到文件中。6、蚂蚁爬杆问题有一根27厘米长的细木杆,在第3厘米,7厘米,11厘米, 17厘米,23厘米这五个位置上各有一只蚂蚁,木杆很细,不能同时 通过两只蚂蚁,开始时,蚂蚁的头朝向左还是右是任意的,他们只会 朝前走或掉头,但不会

7、后退,当两只蚂蚁相遇后,蚂蚁会同时掉头朝 反方向走,假设蚂蚁们每秒钟可以走1厘米的距离。求所有蚂蚁都离 开木杆的最小时间和最大时间。答案:两只蚂蚁相遇后,各自掉头朝相反方向走。如果我们不考虑每 个蚂蚁的具体身份,这和两只蚂蚁相遇后,打个招呼继续向前走没有 什么区别。所有蚂蚁都离开木杆的最小时间为max(mi n(3,27-3),mi n( 7,27-7),min (11,27-11),mi n(17,27-17),mi n(23,27-23)=11所有蚂蚁都离开木杆的最大时间为max(11,27-11),max(max(3,27-3),max (7,27-7),max(17,27-17),max(23,27-23)=24&n bsp;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1