携程秋招第四批笔试复盘:算法考点与边界陷阱

发布时间:2026/9/1 5:04:44
携程秋招第四批笔试复盘:算法考点与边界陷阱 2023年携程秋招技术通用岗第四批笔试我是在10月中旬参加的。当时投递简历后等了一个多月差点以为简历被筛掉了结果一个周五晚上突然收到了笔试链接48小时内完成。这种批次安排其实挺有讲究携程的秋招笔试分批放出第四批通常处于整体招聘节奏的偏后期意味着HC招聘名额已经不像第一批那么充裕笔试筛选的标准往往也更高。所以如果你也收到的是靠后批次的笔试邀请不用紧张但要有心理准备——这一批的竞争对手里很多是前面几批没赶上、或者补投简历的优质候选人整体池子并不弱。这篇复盘我不准备泛泛而谈笔试经验而是把第四批笔试从试卷结构、算法题复盘、选择题考察方向、现场执行策略、到笔试后的面试衔接一条线完整拆开。尤其是那些容易丢分的细节——边界条件、数据范围、甚至代码环境的操作习惯——每一个都可能导致你明明会做却拿不到分。适合正在准备大厂秋招/春招、尤其是冲着携程或其他OTA在线旅游企业去的同学参考。1. 第四批笔试的整体盘面批次节奏与试卷构成1.1 为什么会有第四批靠后批次要关注什么每年秋招大厂笔试都会分批放出携程也不例外。第四批意味着什么首先核心岗位的大部分offer已经在前三批发放或处于面试流程中但一定还有部分岗位因为候选人放弃、或者业务部门加名额而继续开放。第四批更像是一个补位和候补的组合它和第一批的区别在于——第一批是筛选为主的宽进严出第四批则倾向于定向补录所以笔试成绩在你后续流程中的参考权重是不低的。观察身边进入携程面试的同学后批次笔试通过的人往往有两个共同点一是算法题做得扎实不依靠运气二是综合部分选择题/通用能力没有明显短板。因为到第四批HR看笔试结果是看整体分数线的单纯靠某一题超常发挥很难拉回总分。1.2 试卷模块与分值分布第四批技术通用岗的笔试是在线完成的总时长大约2小时我这场是三部分整体结构如下模块题型题量时间建议第一部分技术单选题15-20题30分钟第二部分通用能力题阅读理解/逻辑/资料分析10-15题20分钟第三部分编程题2题中等偏难60-70分钟这里要提醒一下不是说所有批次都完全一样但整体框架是稳定的。技术通用岗并不是纯做算法题它有相当比例的基础知识选择题覆盖数据结构、操作系统、网络、数据库、Java/Python等语言基础。这在第四批笔试里反而是拉分关键——因为很多人平常刷惯了LeetCode对这类概念的记忆已经很模糊了。分值占比上编程题是绝对大头通常是60-70分的体量选择题占比30-40分。通用能力部分往往不计入技术分但会作为面试时的综合素质参考。所以策略上必须优先保证编程题的通透度和正确率再抽时间做选择题。2. 编程题核心复盘算法考点与典型陷阱2.1 高频考点分布我复盘了这批笔试的编程题以及身边朋友反馈的其他批次题目发现携程技术岗的编程题偏好比较明确主要集中在以下四类模拟/字符串处理尤其是涉及订单、车票、航班信息这类OTA业务场景的字符串解析题。这类题难度不大但写起来繁琐特别考验代码组织能力。动态规划背包类、最长上升子序列这类经典题经常出现。注意它不是那种裸DP通常会包装一个行程安排优惠券抵扣之类的业务外壳。图论与最短路径携程做旅游业务路线规划和最短路径是核心场景所以Dijkstra、拓扑排序是常客有时会衍生出带约束的最短路径。二分答案/贪心这类题往往作为较难那一道出现考察你能否在有限时间推导出单调性。我看到群里有人吐槽说携程笔试怎么还考地铁换乘其实就是最短路径的一个变体披了一个交通出行的壳。如果你时间有限优先刷动态规划和图论这两块性价比最高。2.2 边界条件与数据范围比算法本身更容易翻车这是我想重点讲的。很多同学包括我笔试翻车往往不是不会做而是挂在边界和数据的细节上。典型的一个例子是计算一天内可预订的连续时间段这类题。很多人拿到题第一反应是排序然后合并区间思路没错但笔试提交后就是有一个用例过不了。为什么因为忘了处理跨天的情况——比如23:00开始持续2小时应该输出01:00而不是25:00。再比如涉及价格计算的题数据范围常常给到10^9级别。如果你用int存总价直接用int相减溢出了都不知道。这类题必须在拿到题目的30秒内养成一个习惯先看数据范围再看输入格式最后才看题目描述。数据范围决定了你的算法复杂度和变量类型。我个人的习惯是读题时把边界条件直接写在草稿纸上比如n1空输入最大数值重复元素等等写完代码后逐条自查。这个习惯帮我挡住过至少两个用例。2.3 一道典型题的解题思路还原这里复盘一道具有代表性的题目具体细节记不太清了但思路很有参考价值。题目大概是这样的给定一组景点之间的交通连接连接有时间消耗和费用要求从起点到终点在总费用不超过预算的情况下找到最短时间路径。若存在多条最短时间路径选择费用最低的一条。这道题就是典型的带约束的最短路。第一反应是直接用Dijkstra求最短路但费用约束会让你重新思考——因为那条最短时间的路可能费用超预算所以你必须允许绕路。正确的思路应该是扩展Dijkstra的dist数组维度不再只有dist[node]而是dist[node][cost]表示到达node且恰好或不大于花费cost时的最小时间。每次松弛的时候把时间和费用两个状态同时作为约束条件。这个其实就是分层图最短路的思想把费用作为状态维度在费用维度上跑最短路。实际写代码的时候我踩了一个坑费用上限如果给定到10^5直接开二维数组dist[N][100000]内存会爆。需要优化成dist[node]存一个有序字典或堆把费用作为维度但用稀疏存储的方式。如果你在考场上遇到类似情况优先想清楚状态定义能不能交换维度比如改为以时间为状态、求最小费用往往能降低内存压力。这个题的教训是看到两个约束条件时要么状态加一维要么二分其中一个维度。平时刷题时可以刻意训练这个思维模式考试时就不会卡住。3. 选择题与通用能力部分不能只刷算法题3.1 技术选择题的覆盖范围编程题之外选择题是很多人忽视的盲区。我参加这批笔试时技术选择题覆盖了这些方向方向具体内容常考频率数据结构二叉树遍历、哈希冲突解决、堆调整、排序稳定性高操作系统进程线程区别、死锁条件、虚拟内存、页面置换高计算机网络TCP三次握手、HTTP状态码、DNS过程、HTTPS握手中高数据库索引原理B树、事务隔离级别、最左前缀中高Java/Golang/Python泛型、垃圾回收、可变对象、并发集合中软件工程设计模式、代码重构、测试基础低这里有一个可以提前准备的点携程的技术栈里Java和部分Go用得比较多所以Java相关的题目出现概率不低。如果你主要写Python或C一定要提前过一遍Java基础尤其是HashMap在JDK 8后的红黑树优化链表长度8转红黑树和equals在字符串比较中的差异volatile和synchronized的区别线程池的核心参数及其执行顺序。这些题单看不难但如果你平时完全不用Java光靠临场推理是推不出来的得提前背一轮。3.2 阅读理解和逻辑题的答题节奏通用能力部分有点类似行测的简版包括阅读理解、逻辑判断和资料分析。对技术岗来说这部分往往不计入总分但它有几个作用如果笔试总成绩相同通用能力部分的分数可能成为排序依据一些面试官会看你通用能力的表现来评估沟通和逻辑表达。我的建议是这部分控制在20分钟内完成不纠结。资料分析题一般需要比较精确的除法估算但不要在某一题上花超过2分钟。阅读理解题的核心技巧是先看题干再回原文定位不要逐字通读。这里透露一个我自己的节奏进入通用能力部分之前我会先把编程题完整提交哪怕不是最优解再回头做选择题和通用题。这样保证最重要的分数先落袋。如果你按试卷顺序做很可能在选择题上消耗太多时间导致编程题来不及。4. 笔试现场的执行细节比多刷题更能提分4.1 平台操作与代码环境第四批笔试使用的在线笔试平台支持多种语言可以做本地编译但要注意几个细节点输入输出是自己按标准输入解析的不是LeetCode那种已经帮你封装好函数的形式。很多人平时刷题用习惯了Solution类的函数接口到笔试环境突然要自己处理输入格式容易懵。代码编辑器没有自动补全部分有如果你是重度依赖IDE补全的人建议提前在无补全环境下练两三道题不然后面写代码会非常费劲。一次笔试的代码提交次数通常没有严格限制但不要滥用。每提交一次系统会记录有些平台会对编译错误做扣分或提醒处理。我在笔试前专门用纯文本编辑器练了几个输入解析样例等到考试时至少不会因为输入格式浪费10分钟。4.2 时间分配策略与做题顺序2小时的时间我是这样切的前10分钟快速浏览所有题目不写代码。重点看编程题的题意和数据范围在草稿纸上记录每道题大概的算法方向。接下来70分钟主攻第一道编程题争取AC。第二道偏难题如果思路清晰就继续不清晰就先写暴力解保底。再20分钟完成技术选择题。这部分拼的是知识储备不需要太多犹豫。最后10分钟检查代码的边界条件补齐异常处理如果还有富余再优化第二题的解法。一个很重要的策略判断当第二道题没有明确思路时不要死磕先把暴力解法写上。暴力解至少能通过30%-40%的用例而如果你空着0分。笔试考的是通过用例比例不是只看你有没有完整解出来。4.3 提交前的自查清单程序写完不等于结束提交前的自查非常关键。我总结了一个清单每次笔试都用输入读全了吗有没有可能需要读到文件末尾的循环数据范围使用long long/long了吗数组/列表的索引是否可能越界是否有除零或空指针风险输出格式是否和题目完全一致空格、换行、大小写临界输入n1、n最大值是否处理正确这些问题里的任何一个都足以让一道AC的题变成0分。尤其是题目要求输出YES和NO你输出Yes和No系统判的就是错误。5. 笔试后的复盘与面试衔接5.1 复盘该记录什么笔试结束后趁记忆新鲜我建议花30分钟做一次复盘。不要等两周后再做到时候题目长什么样都忘了。复盘时重点记录每道题用的算法和最初的思路哪些边界条件没想到选择题里哪些知识点是模糊的整个考试时间分配是否合理。我当时复盘后整理出一个知识盲区清单发现数据库事务隔离级别这块理解不深就在面试前把这个部分突击了一遍。后来面试里真的被问到了RR隔离级别下怎么解决幻读属于直接命中。5.2 笔试到面试的准备联动携程的面试通常在笔试通过后一周到两周内安排。在等待期间不要只刷算法题还要把简历上的项目经历重新过一遍。携程面试的流程是技术面连环面考察内容包括项目深挖、基础知识、算法题、场景设计题。笔试已经考过的基础知识点面试官可能不会再重复问但笔试暴露出的短板他们反而可能追问。比如你笔试中数据结构排序那块选错了面试官可能会问你刚才说快排不稳定那不稳定是什么意思对实际代码有什么影响这种追问题。所以笔试复盘时发现的知识漏洞一定要在面试前补齐别让同一个坑绊倒你两次。另外携程作为OTA企业业务场景题经常和旅游场景绑定。比如如何设计一个酒店的房态库存系统如何做特价机票的推荐排序。笔试阶段你可以不熟悉业务流程但到了面试阶段至少要提前了解携程的主要产品形态——机票、酒店、火车票、度假、商旅每个业务的核心链路和典型技术挑战能说出一二。这部分准备会明显提升面试官对你的好感也让你的技术方案有落地感。我在实际准备中会把这类业务场景题和笔试题目做关联笔试里那道预算约束下找最短路径的题其实就能升华成为用户规划符合预算的行程这种业务问题。把笔试题目当成业务需求的抽象面试时再还原回业务场景你会发现自己看问题的层次完全不同。这就是我强烈建议你笔试后不要单纯对完答案就翻篇的原因——笔试题目既是筛选工具也是了解公司业务和面试方向的最好素材。