腾讯一面总结

    写一篇杂谈,抛开各种技术的话题(那你还说面试干嘛),说说17号面试腾讯的总结。(其实已经把不会的问题都整理了一遍了。)

    2018年4月17号晚上19:30,收到了腾讯电话面试。(我先说一下,我一个星期都在看操作系统和计算机网络,凉的一批。)

    面试官:有空了吧,我是你的***面试官,有空就做个自我介绍吧。

    我:巴拉巴拉***(做了个自我介绍)(听着声音都知道是大佬,膜拜T_T)

    之后面试官问了我4道关于项目的问题。其实那项目是深度学习的项目,而且用了一个寒假读完了周志华的《机器学习》,所以答起来并不是那么难,比较开放性的问题。

    之后就开始进入正题了。

    面试官:你是用C++写的吧(其实我是用python写的,来不及说),那我问你几道C++的问题吧。你知道C++内存中有几个模块吗。

    我:(因为是上学期学的C++,有点忘记了)堆,new/malloc申请内存的时候就放在堆上,栈,函数参数,函数内部变量就放在栈上,自由存储区(当初不知道看了那个SB的博客写的,其实根本就没自由存储区这个东西),静态成员放在静态存储区中,还有一个忘记了。(那时候真的想不起来了)

    面试官:哦,忘了呀?那问具体一点,你知道main函数是放在哪里的吗?就是你点一个可执行文件.exe,你知道里面的main函数是放在哪里的吗?

    我:(哈,什么,main放在那里,代码区)代码区?呀不不不,不对啊,main放在哪里呢?(不知道为什么,脑子里就往操作系统内存分配那里想了,然后又想到汇编语言,当时头脑一片混乱)。

    面试官:哦。不知道呀。那算了。你知道C++的多态是怎么实现的吗?

    我:多态,多态就是***(行云流水的说了运行时多态,也就是动态绑定那个。)

    面试官:行。恩,你知道虚函数表是和类对应的还是和对象对应的。

    我:类,一个类里面只有一个虚函数表,每一个对象共用一个虚函数表。

    面试官:可以,那你知道虚函数表是放在哪里的吗?

    我:(哈,什么,虚函数表是放在那里?什么,代码区?怎么又是代码?)忘了。

    面试官:忘了呀,那你知道静态变量是存放在哪里的吗?

    我:静态存储区。(但是根本不知道面试官为什么要这么提示我,后来才知道,原来虚函数表在静态存储区中)

    面试官:那虚函数表是不是也在静态存储区中呢?

    我:是吗?(凉凉,为什么要说这句话。口头禅有毒啊)

    面试官:原来你不知道啊,行。

    面试官:好,多态是分为两种的,一种是运行时多态,另一种是编译时多态,你刚才说的那个是运行时多态,你知道编译时多态是怎么样的吗?

    我:编译时多态就是重写吧。

    面试官:重写吗?行。

    面试官:你用过智能指针啊,那你能不能说一下你理解的智能指针?

    我:巴拉巴拉(把智能指针都说了一遍)

    面试官:行,那我问个具体的,如果shared_ptr的两个指针相互应用,那么计数是多少?

    我:相互引用?是不是shared_ptr a = ***,b = a,a =b,这样的呢?

    面试官:可以,那它的计数是多少?

    我:***(把operator=的函数说了一遍)结果等于2(后来试了以下,发现真的是2)。

    面试官:哦,行。恩。你知道哈希Map是怎么实现的吗?

    我:哈希Map吗?是哈希表还是Map?(当时我想这两个东西实现起来都不一样,一个是哈希表,一个是红黑树)

    面试官:随便,你说一个都可以。

    我:那我说个哈希表吧。(把5个构造方法,2个冲突解决方法说了一遍) 

    面试官:行。接下来就问你一些算法题吧!

    我:好。

    面试官:怎么在一个有序的数组找出两个数a,b,使得a+b刚好等于m。

    我:(因为打ACM的时候已经遇到很多次了,每一次都是直接set或Map存一下,然后m-b找一下,就立刻想到这种方法)有两种方法,一种用Map存所有的数,然后m-b在Map里面找,时间复杂度是onlogn,另一种是两个指针,一个在前,一个在后,同时搜索,两个指针的和大于m,大的就往低的移,小于m,小的就往高的移,等于直接退出。

    面试官:行,那我加一点难度,怎么求三个数,使得a+b+c等于m。

    我:(愣了一分钟左右,不会啊,当初立刻想到一种n平方的算法,以及全是正数的时候nlogn的算法)就说了这两种做法(觉得面试官可能也没反应过来,当时我还在证明合理性,后来才发现不行的。)

    面试官:行,不错,那下一道,怎么在一个无序的数组中找到第K大。

    我:(我把快排的方法说了一遍)

    面试官:那有没有别的方法,不使用这种思路的话。

    我:(愣了一分钟。想不到。拿起笔来画图,两分钟之后,脑子想到一个办法,可是不知道对还是错,和面试官说了一下,然后继续找其他的办法,三分钟后,想出了优先队列的做法就和面试官说了一下,后来发现求错了,求成第K小数,凉凉啊,之后又用了两分钟整理)

    面试官:行,那最后一道题。扔鸡蛋问题。

    我:(哈,扔什么问题,当时心里是真的乱的一批)

    面试官:(把扔鸡蛋的问题说了一遍)

    我:想不到,5分钟之后,想不到(当时怎么想的都在另一篇博客中)

    面试官:本次面试也就到此结束了,有没有什么问题要问我的。

    我:(扔鸡蛋有两个状态,一个***什么,问题,有什么问题,呀不?)暂时没有(没有个鬼,我有很多问题要问你啊,什么时候有二面,可不可以把昨天的话讲一遍,这个是负责什么的,上班时间怎么样)

    面试官:笑了一下,真的没有啊!那好吧。以后我们有面试会继续通知你。

    我:等一下(我想说可不可以听一下我扔鸡蛋的思路)

    面试官:嘟嘟嘟...

    

    (凉凉,透心凉,面试官问什么都不会,没有offer,滚,我连二面的机会都没有。)T_T,已经4天了,别人都hr了,我还是初试,一首《凉凉》送给自己吧。当初就不应该复习操作系统和计算机网络,凉的一批啊,虽然这可能是我面试4场中最好的一场了,也是复习的最多的一场了。果然,运气,真的是实力啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值