字节跳动 C++开发实习面经(凉)
楼主非科班,本科和研究生都读的物理。今年2月底开始学C++(之前写模拟程序有点儿基础),面试前3天看的数据结构和算法。面试官问了以下问题:
Q1: 如何用new函数实现vector的插入和删除功能?
Q2: C++和python的区别?
Q3: 什么情况下会发生内存泄露?
Q4: 两个链表的交点?
Q5: vector的内存性质?
Q6: 链表中环开始的节点?
Q7: 请你描述下用什么样的数据结构去储存一个地铁网络,并且查找最短路径?
Q8: 请你描述下如何去找出并按顺序输出小说当中的带有标记的小节题目?
Q9: 如何按照空格,倒序?例如“I love you”变成“You love I”?
可能考虑到我没有编程基础吧,没有叫我手撕算法。(但实际上那几个算法我都会啊!!!)
Q1 楼主主要说的是可以在最后一个元素后的地址申请内存,然后后序遍历写入。
Q2 楼主主要从我的使用经验上觉得C++更底层吧,巴拉巴拉...
Q3 指针相互引用或者迭代次数过多,巴拉巴拉...
Q4 老办法了,双指针,巴拉巴拉...
Q5 连续内存,巴拉巴拉...
Q6 老办法了,双指针,巴拉巴拉...
Q7 链表储存,数据域标站点,指针域标指向下一个地方的指针。如果存在换乘地点,数据域储存换成站点的指针(也要有本站的站点),做判断p->next该给哪个值。然后用递归的方法做路径规划吧,递归最小路径。
Q8 栈,最后顺序弹出。
Q9 vector<string> 做储存,最后倒序。
问我会不会计算机网络,我说不太懂,说了下我懂的线程和进程吧。还问了个啥(忘记了)我懂不懂,我也说不是很懂,哈哈哈。最后我说我是个萌新,还在学习(DDL的生产力)。
面试官最后还挺满意的,叫我了解下组里的消息,以后要做游戏的物理引擎。然后问我多久能来。然后问我有些啥兴趣爱好(可能真没啥问的了???),我说我喜欢天文,哈哈哈哈哈。然后说和组里商量下,我本以为有戏,结果收到了感谢信,2333。
别说了,赶紧补基础了。现在还有个阿里,阿里的笔试感觉有点儿九死一生啊。
人生第一次面互联网虽然结果失败了,但过程还是很开心,面试官人很好。希望后面好运了。