人人面试

来源:互联网 发布:免费远程教学软件 编辑:程序博客网 时间:2024/09/21 08:50

10.23日笔试,27日第一面,31日第二面。

笔试:题目出的蛮有水平的,就是个别大题的表述有些问题,让人误解。

1、在地铁站,实时监测通过的人的身高,写一个程序满足以下条件:

A.求到某一个时刻所有人的平均身高;

B.求top1000高的人的身高是多少;

后面还有什么记不大清楚了,感觉C条件蛮复杂的。

解题思路:因为大部分人的身高都在一个范围之内,所以可以用一个数组来保存常用的身高,以前求topk问题时都是用一个堆的结构来保存,但是,如果k个人的身高都相同的话,就有点浪费空间了,所以可采用哈希的结构。

2、一个天平,一堆砝码,分别为3,9,27,81....3^N。现在假定天平左边有个重为W的物品,如何添加砝码可使天平两边保持平衡?

思路:这道题我刚开始理解有误,理解为同样克数的砝码可以有很多,而且左边放了重物后只能在右边添加砝码,最终写代码时,写成了如何选用最少的砝码添加到右边保证天平两边平衡。

        该题的本意是利用3进制来思考,这个思路来自一个同学,感觉挺经典的。后来在一面的时候面试官又问道了,就直接引出来了。



一面:面试官人挺好的,比较和蔼,问了问笔试题目,一些之前没答上的再次被问到有点尴尬,好在之前笔完出来和同学讨论了一些。之后针对简历问了些问题,最后写了一个程序。

求一个无序数组中连续两个数的和的最大值,以及是哪两个数?

这道题比较简单,跟面试官说了思路后很快就写出来了,面试官点点头,就知道差不多了哈。出来时,说第二天晚上给通知,但是没有接到,以为被鄙视了,结果在30号晚上的时候接到了2面通知,被鄙视了N多次了,当时的滋味也不知是喜是悲。



二面:上去简单的聊了简历的东东,问了迭代器模式、GC的实现方式。最后写了一道程序。

一个无序数组,求topk小的数?

这道题在进去之前还和同学讨论到了,想着如果是用堆来考虑,我铁定不会做,结果没想到真的被问到了,当时真想让面试官给我换道题,后面忍住了,静下心来想想。通过引入快排,对于返回的index和k进行比较,如果正好和k相等的话返回,大于缩小范围查找,小于在后面的范围查找剩余的k-x个。其实这道题在编程之美和剑指offer上都有,只不过自己记性不好,所以见过了多半也忘记了。总归是完成了,回来等通知,希望有好消息吧。加油了↖(^ω^)↗


原创粉丝点击