22届 tplink 秋招提前批 软件开发 座谈会 一二三面
6.8 上午 一面 线下
应该每个人都20分钟,到点就再见。
首先自我介绍,然后问其中的一个项目。之后开始问基础知识。
-
算法为什么比开源算法好?分层递归求解,先优化整体格局,再优化局部细节 + 考虑任务执行顺序造成的阻塞。
-
如果要你写程序找出内存泄露的位置,你会怎么办?说思路:用map保存malloc和free的位置,看内存分配和释放是否一致。
-
三个线程同时启动,优先级相同,分别打印A、B、C,问如何保证打印顺序为ABC。没答好,三个信号量,初始时刻 Sa=1,Sb=0,Sc=0。
-
死锁的概念。编程时怎么避免死锁?后者没答好,不够简单。
-
HTTP和HTTPS的区别。没答好,说的很乱,HTTPS加密的机制也记得不太清楚。
-
字符串匹配。答曰KMP算法,但是算法原理忘了,憋了半天没想出来。
6.9 上午 二面 视频
面试之前,先签到等面试链接,腾讯会议。
上来没自我介绍,面试官先讲面试流程:智力题、编程题、了解项目。
-
23枚硬币,有10个正面朝上。现在蒙住你的眼睛,如何将硬币分为两堆,保证两堆硬币中,正面朝上的硬币数相同。
答:先将硬币分为两组,A组10个,B组13个,假设此时B组有x个朝上,那么A组有10-x个朝上。再将A组每个硬币翻转,此时A组有(10-(10-x))=x枚硬币朝上,和B组朝上的硬币数相等。
-
上一题我没答出来,给换了一题:三个连续的大于6的整数,其中有两个质数,证明另一个数是6的倍数。
三个连续的数,两个质数,说明数的排列只能是“奇偶奇”。一个数能被6整除,必须同时被2和3整除,偶数一定能被2整除,接下来证明中间的偶数一定能被3整除。三个连续的数,中间一定有一个数能被3整除,但是旁边两个数是质数,不可能整除3,只能偶数整除3,所以另一个数是6的倍数。
-
编程题:给你两个字符串A和B,判断是否能通过一次交换操作将A变成B。
-
A和B长度必须一样
-
若A==B,则必须存在重复字符,使得交换操作不改变字符
-
若A!=B,则不同的位置只能有2个,且两个位置上的字符交换后相等
-
6.10 上午 三面 视频
自我介绍
问本科和研究生学习情况
兴趣爱好
家庭、父母、兄弟姐妹
做这份工作自己的优势和劣势在哪
问简历上项目的应用场景
平时怎么学习的
wifi 协议了解吗
有什么想问的(问了以后在哪个部门,入职前的学习建议,后面还有面试吗)