22/4/11 记录极为令人难忘的阿里一面
22/4/11 阿里一面 记录和复盘
电话面试,晚上7点开始,全程2h22m,是我经历过的最长的面试。面试我的似乎是一位leader级别的人物,给我感觉很有亲和力,很有耐心,教我很多东西,人真的很好。
前情提要:阿里7号的笔试有3道题,前两道都是送分,第三道我感觉是我比较熟悉的一个滑动窗口(事后发现并不是),一顿写,交上去0%正确,怎么都不对。遂心态略崩,第二题也没写完,估计是笔试很差了,但是没有直接刷我简历,而是给了我一个一面的机会。(再次感谢)
开场没有让我自我介绍(我猜是他看过我的简历了知道我菜的一批没啥可以说的--),而是聊了一下笔试题。面试官问我笔试什么情况,我说对题目理解可能有问题,面试官让我现在重做一下试试,我说好(然而我的思路依旧是错的)。
题目:小红有一个仅包含小写字母的字符串s,长度为n(n<200000),现在想从其中找到一个连续的子串,把这个子串删除后,保证剩下字符串中字母的种类至少为k(1<=k<=26)种。求所有可能的方案数量。定义若选择删除子串的起点和终点坐标不一样即为不同的两种方案。
重做时我的状态非常差,快30分钟都没有写完。面试官给我说,要不先给他讲讲思路?我给他讲了一遍我的思路:先遍历字符串,记录字符串中每种字符的种类和数量并存放到一个map里。接着维护一个窗口,窗口也维护一个map并和原串的map比较,若发现两张map中某个key的value相等,说明窗口增长使得字符串的某个字母种类减少了,当减少为k时记录窗口长度并计算其中的方案数量。
我写的很慢,讲述的也不清晰,面试官可能是为了安慰或者鼓励我,给我说,面试考察的并不主要是编程敲代码的能力,更是发现问题并解决问题的能力。
接下来面试官问我程序优化可以从哪些方面入手?我聊了时间复杂度、用空间换时间等等。我感觉我的回答并不使面试官满意。
他让我先写一个随机生成字符串的小程序,再打个表记录一下程序运行的时间。我照做了,结果长度1000时我的程序跑了40多秒(后来我算了一下,时间复杂度应该是O(n^4*logn))。这时,最让我震惊的时候来了:面试官把他写的Java代码贴了出来!好家伙,面试官居然和我一起写代码!我感到深深的震惊,这场面试的性质似乎已经变了,不像是大公司招人在考察候选者能力,而是一位师傅循循善诱教育徒弟解决问题的方法。面试官的方法非常之巧妙,令我叹为观止:用一个32bit整数即可表示26个字母的出现情况(相当于一个map<char, bool>)。而记录时只需要从原串的左端和右端开始考虑,不用管字符串中间的情况(只需知道起点和终点即可计算子方案个数)。面试官还告诉我,他的程序跑200000长度的字符串只需1ms,但是还可以更加优化。
我这时明白了,要优化一个程序的时间复杂度,或许应该从底层、架构、设计方面入手,如果最开始的设计既是非常低效的,那么在此基础上的所谓优化其实没有意义。
编程告一段落,接下来是一些比较常规的面试问题。
项目的背景?答自己为了深刻学习网络并加以实践而做的。
看到你用了poll,说说为什么?和epoll有什么区别?听说过哪些实际的高并发框架?(答nginx)有使用过或者看过源代码吗?(无)面试官告诉我,面对这种高级的技术也可以尝试把他用在自己的项目里,或者阅读他的源代码。这让我感受到,我的知识储备是匮乏的,尤其是在深度上,没有静下心来去钻研。
http协议了解多少?讲讲输入一个网址并回车后发生了哪些事?
这里聊的比较详细,每一层的协议都有涉及,很多零碎的小问题现在难以回忆了,但有一个问题令我影响深刻:两个子网如果不能ping通,应该如何排除故障?除了ping命令还有哪些指令可以用来调试?感觉这里是有意考察我的综合能力,但我答得比较差。
未来几年有自己的计划吗?为什么不考研?
面试结束,我的心情仍然很激动。我知道我大概率是进不去阿里了,但是 ,我遇到了一位极为谦和、有耐心的前辈。教会了我大量的道理,学习的方法和态度,愿意花费两个半小时来指导素不相识的后辈,真的是大佬风范!
技术应该静下心来,戒骄戒躁,做一个领域就去做深,做细致,做到最好。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!