面经

赶集网面试

首先第一感觉不是很好,因为是在一个学校内部,没有那种大公司的大气,也没有华丽的外表。

到了一楼大堂,接待说要等10点给面试官电话联系,就在大厅等到快10点的时候给面试官打电话,面试官亲自下楼来接,感觉这点挺亲民的,不过感觉面自己的都是跟自己差不多的年纪。。。囧

面试开始了。

面试官拿着我的简历看着:

1、你学过php么?

没有。当初学了一段时间的web,刚打算接触php,然后进了acm班。

2、先写一个代码吧:给一个数组,写一下二分查找一个数是否存在。

略。感觉面试的进度好快,上来先看基础代码写的怎么样。而且面试官看的很细。看完之后就让我把接口改改,然后可以让两个人分别对不同的数组调用进行二分查找。

3、你讲一下vector的存储机制吧。

我理解的vector就是一个动态数组

追问:那Vector 新添加一个元素是怎么实现的呢?

重新分配内存空间,将原来旧的元素全部复制到新的存储空间中去,然后再插入新的元素,撤销原来的空间。

追问:那你说一下vector 的初始内存分配是多少?

2的整倍数,具体是多少忘了。。。(面试官回应了个 嗯)

4、Map 的内存机制与二叉树的时间复杂度

Map中一个key对应一个值,可以处理一对一的数据。(当时面试官只是默默的嗯了一下,没说什么,感觉到他的不满意,后来跟同学交流忽然意识到自己应该说map内部就是自建的红黑树,太丢了)

追问:那你说如果查找一个key值是否存在复杂度是多少。

Logn

追问:那二叉树呢

Logn

(感觉这也算勉勉强强弥补了我没答到红黑树那个弱智的问题了吧)

5、虚析构函数的作用

我只记得当一个类被作为基类的时候,才把析构函数写成虚函数,具体什么作用我忘了。

(虚函数哪一块感觉自己根本就没有掌握好)

正解:是为了当用一个基类的指针删除一个派生类的对象时,派生类的析构函数会被调用。

6、构造函数为什么不能是虚函数

因为构造函数是在实例化对象的时候调用的,使用虚函数没有实际意义。

追问:还有呢?(又是虚函数。蒙逼啊!)

额,这个。。。(只能默默的承认了)虚函数这一块掌握的不是很好。

恩恩,没事。(面试官的回答感觉让人好无奈)

正解:http://blog.csdn.net/jiadebin890724/article/details/7951520

还没真正看懂,需要加油!

7、那说一下if_def的作用吧

这个是条件编译命令,也就是程序中某一部分内容只在满足一定条件时才进行编译

还有就是当包含多个文件的时候,有的命名会有冲突,需要解决这个问题

嗯(又是面试官的回答,也不知道自己答的怎么样)

8、说一下linux常用命令

Cdmkdirlscploginmvtopcatifconfigfindmountdu。。。

(感觉自己说的好乱,想起那个就说哪个,没有章法)

9、说一下常用的排序算法

Sort,插入排序,选择排序,冒泡,快排,归并,堆排。

(昨天面妙计挂在了堆排上,回去恶补了一下堆排,囧)

10、说一下快排、堆排的思路吧

快排就是冒泡的一种改进,

选择一个基准,分离成独立的两部分,一部分大,一部分小,然后对两部分分别排序

时间复杂度:nlog2n

堆排时间复杂度:O(nlogn ) (最坏)

11、Python 的对象用过么

没有,暂时写的东西都是一些基本的,字典用的比较多。

12、现在有一个文件 里面有一系列的数,用空格隔开,找出101-200的数有多少个

将数据读入到字符串,然后以空格读出数据,当它大于1000的时候减一对100做除结果为则计数器加1,输出结果。

第二个直接用数组统计对应的数有几个

第三个因为时间关系没想,用数据结构实现, 

13、说一下K均值聚类

随机选取k个点作为中心点,将每个对象找到与他最近的点归到那一类,然后把每个点更新到类中数据的正中心,之后在更新对象,直到对象所属的类不在变化,中心点也不在移动,聚类完成。

追问:如果K个随机点选择的不好了怎么办

之前没想过,会导致这种聚类算法的效率下降吧

追问:还有呢?

(想了一会)别的没有考虑到,感觉只会对时间效率有影响吧

追问:如果有奇异点,而你选择的点不好呢?

哦,这个应该对结果没有多大的影响吧,因为他的对象所属类和K个均值中心都在更新啊!(后来想了想,可能有面试官说的那个情况吧)如果有奇异点的话,可以采用权值分配消除奇异点的影响力或者写一个奇异点的判读机制去除奇异点。

嗯(面试官的回答,还是没有任何有价值的信息)

14、现在我有一个随机数生成器,只能生成1-3,现在我要随机生成1-5,怎么做

(一开始想了一会)可以随机生成两个数,然后两个数组合

追问:嗯,具体的呢?

(仔细想一想不对,因为那样是有9种情况,无法做到生成5个人数随机,后来面试官也提到了这个问题,然后就说,我们肯定是想要一个跟3,5都有联系的,对吧? 仔细一想,确实)

可以随机生成5次,然后5次求和。

伴随着这个问题,一面就这样结束了,然后他说二面的同事还没来,我们就开始聊天,当然少不了聊学校,问学校都学了点什么,然后仔细一想,学校里面教的都是一些语言工具 

 

没一会,二面,同样挺和善的一个人,看起来年龄不大。上来问我,你大概什么时候可以入职,我们需要尽快,看来赶集网最近比较缺人啊。最近跟58合并了想要往大了搞吧!

 

1、现在给你一个直线,直线上有两个人,A,B 两人不可以通信。现在A,B,不知道自己相对于另一个人的位置,现在要让两个人相遇。

(当时拿到这道题挺蒙逼的,因为确实不知道要干啥!想了5分钟,然后开始试着跟面试官交流,因为当没思路的时候跟面试官交流可以得到他想要的答案是什么)

(我的思路就是,现在a不知道往左还是往右,b也不知道往左还是往右,我一开始还在想可不可以借助第三方工具,后来被面试官否决,继续纠结怎么确定两个人的行走方向,这时候面试官说可以把问题分解)

可不可以这样,让其中的一方比如B待在原地,让A走,这样就避免了走反的情况。

追问:嗯,对,然后呢?

另一个人就开始试探。

追问:怎么试探?

比如:A往左走2步,见不到,然后回到原点,往右走四步,见不到,回到原点,往左走8步。。。直到遇见B

追问:嗯,可以。时间复杂度呢?

(晕,又是时间复杂度,这可是自己给自己出题啊!幸好没说太难,想都没想)接近n^2吧!

追问:不对。继续看看

(还是大意了,没想到问的这么认真,想想也是,怎么可能让自己这么轻易过关!不过这复杂度是真不会算具体的啊! 仔细看了看)

2^logn

追问:你看看还可不可以优化一下啊!

(怕什么来什么,不过那个复杂度还真是高,还怎么优化呢,难道试探的数字梯度改改?没影响嘛!)

刚刚B没有参与,现在可以让B也来这么做,然后总距离缩短一半。

追问:然后呢?对效率有什么影响?

(汗~~~!)没影响

嗯(还好面试官就这样放过了我)

2、写一个简单的代码:用递归倒置链表

略。还是严谨性,当时紧张了,写的有些搓,还忘了返回头指针,不过大题上思路上没啥问题,面试官也就放了。

3、看你学过web,那你学过php 么?

(又是这个问题,赶集网很缺那个么)

没有,刚打算接触php的时候进了acm,不过我感觉那些都是语言工具,对于有编程语言功底的人来说学那些比较好学(面经上说,面试要自信,给面试官的感觉就是很自信,你可以,相比于连自信都没有,总觉得这些我搞不定的人更容易得到面试官的青睐,当然是自信,自负的话会让人反感。)

4、你对我们现在的工作了解么

不了解。

然后就是简单的工作介绍。

5、你平时看什么技术论坛、开源论坛么?

看,比如知乎(当然,面试官也说那就是个扯淡的地方),还有csdn,博客园,51cto

偶尔会去Chinaunix。

追问:赶集网和58合并了知道么?

恩恩 知道。

(然后就针对老家,兴趣爱好,足球,以及薪资、住宿等问题进行了交流,也强调了如果收到offer ,下周一尽快来入职)

6、你有什么问题

没有了。

至此面试结束。

二面还亲自送到了大堂门口(因为出门需要打卡),感觉挺和蔼的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值