上周刚面完 Google 的一轮远程技术面,现在还心有余悸。作为一名在湾区卷了多年的华人码农,本以为对各种算法题型早已刀枪不入,但当面试官在共享文档上悠悠地敲出那道题时,我还是结结实实地捏了一把汗。 它没有考什么高深的动态规划,也不是复杂的图论,而是一个我们生活中再熟悉不过的场景。 面试题的原文如下: Implement a restaurant waitlist data
上周刚结束了和TikTok的一轮远程技术面,心跳现在才算勉强平复。和传说中的一样,字节系的面试节奏很快,不拖泥带水,问题看起来家常,但每个提问都像是在探你的底。现在趁着记忆还热,把那道让我差点翻车的算法题和当时的心路历程分享出来,希望能帮正在刷题的你绕开一些坑。 面试官是个看起来很干练的工程师,寒暄两句就直接在共享编辑器里贴出了题目,氛围瞬间就有了强度。 Given an array of positive integers nums and
你知道面试时最爽的瞬间是什么吗?不是秒杀难题,而是在面试官面前,将你脑中一闪而过的优化思路清晰地讲出来,并看到对方点头认可的那一刻。上周面DoorDash,我就经历了这么一次心跳加速的体验。一道看似烂熟于心的Top K问题,从“我会做”到“我能做得更好”,中间可能就隔着一张Offer和一封感谢信的距离。 面试官是一位很友善的华人大哥,寒暄几句后就直接进入正题,在共享编辑器里贴出了题目。 Given a non-empty array of integers, return
如果用一个词形容亚麻的SDE面试,那就是“窒息感”。刚结束的这场远程面试,一位语速飞快的印度小哥,从头到尾没给我半点喘息的机会。没有多余的寒暄,直接就甩给我一个大部头的系统设计题,感觉大脑的CPU瞬间被拉满。 面试开始没几句寒暄,直接就甩给我一个大部头的系统设计题。 “Design a scalable API Rate Limiter.” 面试官希望我设计一个可扩展的API请求速率限制器。这题算是老朋友了,但亚麻问得非常深,完全不是背模板就能过的。我先稳住心神,确认了几个关键的设计目标,比如要支持按用户或IP进行限制,并且延迟要做到毫秒级,还要保证高可用和高扩展性,轻松应对上万QPS的流量。我的核心思路是围绕Redis集群和令牌桶算法来构建。当请求进来时,不是直接放行,而是先向“桶”里申请一个“令牌”。我跟面试官解释了如何利用Redis的原子操作,特别是通过Lua脚本来保证“取令牌”和“更新时间戳”这两步的原子性,避免并发场景下的数据不一致问题。我还详细设计了Redis里的key格式,例如 ratelimit:{api_id}:{user_id},以及里面存储的字段,包括当前剩余的令牌数和上次补充令牌的时间。整个过程像是在白板上和同事讨论技术方案,感觉他对我这种抽丝剥茧、主动沟通的风格还比较满意。
最近硬刚了TikTok的一轮远程VO,过程还算顺利,希望能给正在求职路上的小伙伴们一些参考,特别是对字节(TikTok母公司)面试风格感兴趣的同学。这次面试经历感觉挺有代表性的,尤其是碰到的一道算法题,感觉是他们家常考的类型,这里重点分享一下。 面试官小哥上来先是常规地聊了聊项目,然后就直接进入了做题环节。题目直接贴在了共享文档里,这个在大厂面试中也算是标配了。 Question description You are given an array of