拓冰建站拓冰建站
首页 / 资讯中心 / 正文

携程秋招技术通用岗第三批笔试复盘:题型解析与备考策略

2023年携程秋招技术通用岗第三批笔试是我那个秋招季里印象最深的一场在线笔试。当时刚海投完一批互联网公司收到邮件时人还在图书馆看到“第三批”三个字心里咯噔一下第一反应是“是不是简历筛得比较靠后被排到末尾批了”。但真到笔试那一晚才发现第三批的题量和难度一点没打折反而因为准备时间更充足、网上能搜到前两批的反馈信息占了不少便宜。这场笔试值得单独写一篇复盘是因为它的题型设置和很多人的预期不太一样技术通用岗不等于只考算法里面既有行测题、也有专业基础单选多选还夹着好几道贴着住宿和旅行场景设计的编程题。对想进携程的应届生来说这篇文章核心想讲清楚三件事笔试到底考什么、每类题怎么准备、考试现场怎么减少丢分。如果你正在准备秋招、投递了技术通用岗但还没摸清套路可以参考我下面这套从投递到复盘的完整经历。1. 为什么第三批笔试值得认真对待批次安排与真实投递节奏1.1 第三批不是“边缘批”一个很容易误判的地方很多同学看到第三批就默认是补录、调剂、或者简历不太亮眼才被排到后面我一开始也是这么想的。但后来复盘整个流程发现这个判断其实站不住脚。互联网校招的笔试批次并不是按简历质量排的更多是按投递时间的自然切分第一批通常是网申刚开放那两周投进来的简历第二批是截止日期前的集中增量第三批则覆盖了后段投递、以及前面批次笔试后释放出来的部分名额。从最终结果看第三批笔试成绩和面试邀约的关联度并不比前两批弱。我身边有同学是第一批笔试的也有第三批笔试的最后都走到了Offer环节。真正影响结果的是笔试成绩本身而不是你在第几批考。更何况第三批有个隐性好处在前两批考完之后牛客和各类社区已经有不少题型回顾和经验帖哪怕信息不全你至少能知道大概的题型结构、编程题风格、以及平台怎么做题。这些都是第一批考生完全不具备的信息差。所以如果你收到的是第三批笔试通知不用纠结是不是“被挑剩下的”。把它当成一次正规校招笔试去准备注意别被网上的“第三批没坑了”之类说法影响心态。秋招季里“捡漏”的真实含义往往是用比别人更充分的信息准备在同一个考场上拿到更高的分数。1.2 从投递到笔试通知时间点和容易忽略的通知细节携程秋招技术通用岗的投递一般通过官网校招页面完成投递时不需要一开始就锁定细分方向通常只填“技术通用岗”后续笔试通过后再结合部门和岗位方向做双选。这一点对不少同学来说是个减压项笔试阶段更侧重通用技术能力而不是某条业务线的特定技术栈。按我当时的经历从官网投递到收到笔试通知大概隔了一周多。通知渠道一般是邮件加短信邮件来自官方校招邮箱主题会写明“携程2023秋招技术通用岗笔试邀请”之类。这里有个特别容易被忽略的坑通知邮件有概率被丢进垃圾箱或推广邮件夹。我同实验室有个同学就是没看到邮件等发现时已经过了笔试进入时间只好等下一批。建议投递后把校招邮箱加白名单同时保持手机短信和垃圾邮件夹都检查一遍。笔试通知里会写明考试时间和一个在线考试链接一般是固定的晚间时间窗口比如19:00到21:00需要提前用邮箱和手机号登录。携程的在线笔试通常需要开启摄像头权限部分批次还要求电脑端操作所以务必提前一天把设备环境准备好。真到了考试那天你不可能临时跟HR说摄像头坏了这属于考前必须规避的低级失误。2. 拆解笔试全流程题型配比与答题顺序2.1 技术通用岗笔试题型的整体框架携程技术通用岗的笔试至少我经历的这个批次不是单纯的技术题。整张卷子给我的感觉是“综合素质技术基础代码能力”的组合体大致分成四块题型大致题量建议用时难度感受行测类图形推理、逻辑判断、数量关系、资料分析20-25题15-20分钟中低但费时间专业基础单选和多选15-20题15-20分钟中多选容易扣分英语阅读理解1-2篇10分钟低难度接近六级编程题3-4题60-80分钟高决定区分度要说明的是不同批次的题量和配比可能略有变化以你收到的笔试通知为准。但从整体比例看编程题占绝对大头其次是专业基础题行测和英语更像“门槛型”配置。技术通用岗这个名字也透露出一个信息它要筛的是“技术底子合格综合素质在线”的人不是纯算法竞赛选手也不是纯八股选手。正因为如此笔试策略非常讲究“抓大放小”。2.2 各题型分值占比与我的做题顺序分值占比我没有办法拿到官方答案按我自己做题和后续面试反馈的推测编程题大概占到50%以上专业基础题占25%-30%行测和英语加起来占20%左右。这个分布决定了答题顺序不能按题目顺序死磕而是要按“投入产出比”来排。我当时选择的顺序是先做专业基础单选和多选再做编程题然后回头做行测最后做英语阅读。原因是专业基础题相当于热身能快速进入做题状态编程题是最需要脑力的部分应该放在注意力最充沛的时间段行测和英语虽然分值不高但至少不能完全放弃放在后面“保住底线”。也有同学习惯先写编程题再回头做选择这个因人而异。但我不建议把编程题放在最后因为一旦某个题卡住前面的选择填空又没做完后面会非常被动。编程题需要的是连续思考时间而选择填空题相对碎片化你哪怕只剩五分钟也能抢几道。所以核心原则是把最需要整块时间的题型放到最前面。3. 专业基础题的高频考点与多选题陷阱3.1 真正会被考到的知识点不是让你背全书专业基础题覆盖的范围很广但真正会考的其实集中在几个方向上。以我这一批的体验来说语言基础Java、Python、C三选一或混着考、数据库、计算机网络、操作系统、数据结构与算法基础是绝对主力。纯记忆型的冷门八股反而不多。语言基础题最喜欢出“给一段代码问输出什么”这种形式。我当时遇到一道Python默认参数陷阱题大概是说def func(item, lst[])这种写法连续调用多次后列表不会重置因为默认参数在定义时只初始化一次。这类题考察的是对语言底层机制的掌握不是背语法就能应付的。Java方向的同学建议看一下 Integer 缓存范围、字符串常量池、try-catch-finally 的执行顺序这些都是高频点。数据库这块索引失效场景、事务ACID、隔离级别、SQL分组聚合基本是必考套餐。特别是索引失效几乎是互联网公司笔试的“定番”。常见的选项包括对索引列使用函数、隐式类型转换、like通配符在前、没有遵循最左前缀原则然后让你选哪些会导致索引失效。这个考点在面试阶段也会被追问笔试阶段最好就把它彻底搞懂而不是凭感觉猜。计算机网络题相对常规TCP三次握手、HTTP状态码含义、GET与POST区别是出场率最高的几个。操作系统则集中在进程与线程的区别、死锁产生的四个必要条件、虚拟内存的作用。数据结构这边栈和队列、二叉树遍历、排序算法复杂度比较、哈希冲突处理方式都属于“看一眼就会、不复习就可能错”的基础题。整体来说专业基础题不需要刷完整本教材把高频考点的概念和典型例题过三遍比盲目刷题有效得多。3.2 多选题的“少选得分”策略不做赌徒专业基础题里最坑的不是单选而是多选。携程的多选通常有一个很关键的规则少选可以得部分分错选或多选不得分。这意味着你不是选得越多越好而是“只要保证选上的选项是对的就能有收益”。我自己的策略很简单有十足把握的选项必选模棱两可的选项坚决不选。比如一道题问“以下哪些操作会导致索引失效”如果你确定“对索引列使用函数”和“隐式类型转换”一定失效但拿不准“like %xxx”这个写法在当前数据库版本下算不算失效那就只选前两个。少选最多丢一点分但选错一分都没有。这个逻辑在整张卷子上可以帮你安全保住大量基础分。多选题的选项设计往往带有很强的干扰性它会把一个“看起来对但实际错”的选项放在你面前。比如问进程间通信方式时把“共享内存”“消息队列”“管道”“套接字”和“函数调用”混在一起很多同学会手滑把函数调用也勾上。像这种题复习时就要注意把每类知识点整理成“合法选项清单”和“常见干扰项清单”考场上识别速度会快很多。4. 编程题真题风格拆解从业务场景到算法本质4.1 业务场景模拟题订单排序与多关键字排序携程的编程题非常贴业务几乎每道题都有一个旅游场景的壳子。第一类高频题是订单处理比如“给定一批旅行订单每个订单包含订单号、订单金额、订单状态要求筛选出已支付状态的订单并按照金额从高到低排序如果金额相同则按订单号从小到大排序”。题目本身不难考的是多关键字排序和编码规范。这类题真正的坑在细节。首先订单号通常不是整数可能是纯数字的长字符串直接用字符串比较可能出问题需要按数值处理其次金额可能带两位小数用浮点数做比较会有精度问题稳妥做法是转成分整数再比较最后输出格式必须严格按题目要求比如每个订单用换行分隔、订单号补全前导零等。任何一点没注意都可能白白丢掉测试用例分。用Python的话核心就是sorted()加key参数def filter_and_sort(orders): paid [o for o in orders if o[status] paid] paid.sort(keylambda x: (-x[amount], x[order_id])) return paid负号实现降序这个技巧很常用但注意金额要提前转成整数分避免浮点误差。如果题目要求输出“金额降序、订单号升序”这样写就完全对应。这种题建议用Python做代码量少不容易在语法细节上出错。4.2 酒店价格区间与滑动窗口一道典型的“场景包装算法”第二类高频题是价格查询类比如“某酒店连续N天的房价已知用户计划连续入住k天求总价最低的连续k天是哪一天”。这题本质是“固定窗口长度的最小和问题”最优解法是滑动窗口复杂度O(n)。题目本身不复杂但很多第一次见的人会下意识用双重循环然后数据一大就超时。滑动窗口的思路可以这样理解先算前k天的价格总和作为初始窗口然后每次把窗口往右移动一天减去窗口最左边那天的价格加上新进入窗口那天的价格维护一个最小值。整个过程只需要遍历数组一次比暴力枚举少了一个量级的时间。我当时写的核心代码大概是def lowest_price_window(prices, k): if len(prices) k: return -1 cur sum(prices[:k]) min_sum cur start 0 for i in range(k, len(prices)): cur prices[i] - prices[i - k] if cur min_sum: min_sum cur start i - k 1 return start 1 # 返回第几天按1开始计数这个题的易错点有几个一是当存在多个最低总价窗口时题目通常要求输出最早的那个所以更新条件要用“严格小于”而不是“小于等于”二是如果k大于总天数需要返回特定值不能直接报错三是输出的是“第几天”还是“数组下标”一定要看清题目要求。每一届都有同学在这个细节上翻车。4.3 机票改签问题带约束的最短路第三类题是图论场景最经典的就是“航班改签”。题目大概意思是给定若干个城市之间的航班每个航班有飞行时间和价格现在旅客要在限定总时间内从出发城市到达目的城市求最低花费。这个问题本质是“带时间约束的最短路”不能用裸的Dijkstra直接套因为Dijkstra处理的是单一权重最短路而这里有价格和时间两个维度。我的做法是把两个维度都放进优先队列里。队列元素可以设计成(当前总花费, 当前已用时间, 当前城市)每次取出花费最小的状态进行扩展如果已用时间超过了限制就剪枝如果到达目的城市就更新答案。为了剪枝效率可以维护一个best[c][t]或者更巧妙的处理方式但在笔试环境下只要写出能过的版本就行。简化版思路import heapq def min_cost(flights, n, src, dst, limit): graph [[] for _ in range(n)] for f in flights: u, v, cost, time f graph[u].append((v, cost, time)) pq [(0, 0, src)] # (花费, 时间, 城市) dist [[float(inf)] * (limit 1) for _ in range(n)] dist[src][0] 0 while pq: cost, time, city heapq.heappop(pq) if city dst: return cost if cost dist[city][time]: continue for nxt, c, t in graph[city]: nt time t if nt limit and cost c dist[nxt][nt]: dist[nxt][nt] cost c heapq.heappush(pq, (cost c, nt, nxt)) return -1这里把时间上限作为状态维度可以正确处理“从不同路径到达同一城市但时间不同”的情况。笔试时如果时间不够可以先写一个DFS回溯拿到部分分再优化成优先队列版本。这种图的题关键是把约束条件想清楚再选择合适的搜索策略。4.4 状态压缩与DFS景点路线规划最后一道题通常最灵活有点压轴的意思。我记得当时有一道和景点规划相关的题有N个景点每个景点游玩需要一定时间部分景点有前置依赖必须先玩A才能玩B要求在总时间限制下选择尽可能多的景点游玩。这题既要处理依赖关系又要在时间约束下做选择本质上是一个带条件的组合优化问题。因为N通常不会太大我当时直接用DFS回溯做的。先根据前置依赖关系建图记录每个景点的前置节点集合然后从起点开始尝试选择景点每选一个就检查是否满足前置条件、总时间是否超限最后记录最大可玩数量。如果数据范围再大一些可以考虑状态压缩DP用二进制位表示哪些景点已选但笔试中能把DFS写对已经很够用了。这类题的核心经验是“先暴力再优化”。虽然教科书上总讲最优解法但笔试时间有限能把暴力解法写对、过掉一部分测试用例往往比死磕满分更重要。而且DFS回溯模板是通用的遇到排列组合、子集选择、约束满足类问题都能套建议考前把模板手写几遍形成肌肉记忆。5. 行测与英语容易被忽略的隐性拉分项5.1 图形推理和逻辑判断的快速判断思路行测部分在技术岗笔试里很容易被轻视但它真实存在而且真的会影响总分。如果专业基础和编程题都做得很顺却因为行测没做完导致总分差一截那就太亏了。携程行测部分常见的是图形推理、逻辑判断和数量关系偶尔有言语理解和资料分析。图形推理的快速思路我总结成“先位置、再数量、后属性”。优先看图形之间的位置变化比如旋转、翻转、平移如果位置规律不成立再看点线面角的数量关系最后看对称性、开放封闭这样的属性规律。不要一张图盯两分钟超过一分半没思路就随便选一个跳过把时间留给后面的题。逻辑判断部分常见“加强削弱型”和“翻译推理型”。加强削弱题先找题干中的论据和结论再看选项是加强还是削弱注意绝对化表述通常是削弱项。翻译推理题要把“如果A那么B”“只有A才B”转换成逻辑关系千万别凭直觉选。行测整体策略就是不恋战按“90秒内必须出结果”的节奏推进。5.2 资料分析与英语阅读优先级怎么排资料分析题放在行测最后通常是几个图表配几道小题考的是增长量、增长率、比重、平均值这些公式。这类题计算量偏大如果放在中间做容易挤占后面编程题的时间。我的建议是不要主动把资料分析放在编程题前面。它更适合作为整张卷子的收尾题即使没做完影响也相对可控。英语阅读的话我那批遇到了一篇短文难度大概在四六级之间主题和旅游相关。这部分不需要专门背单词也不用刷大量题目。备考阶段保持“每天一篇六级仔细阅读”的手感就够了重点是在考试时快速定位段落关键词不要逐词精读。毕竟技术岗笔试的英语不是选拔项更像是综合素质的参考项不需要投入太多精力。6. 在线笔试的环境细节与“部分得分”战术6.1 在线笔试平台与设备检查最容易翻车的几个细节携程的在线笔试一般在牛客网或赛码网这类平台进行考试当天需要浏览器全程运行部分批次有摄像头监控。这些细节看着不起眼现场出问题非常闹心。细节一输入法。写编程题时一定要切到英文半角状态全角字母和符号可能直接导致编译错误。细节二切屏监控。很多在线笔试平台会记录离开页面次数超过一定次数可能被判定作弊。考试前记得关闭微信、QQ、邮件弹窗把手机静音放远一点避免误触。细节三浏览器兼容性。建议提前一天登录考试链接用考试要求的浏览器测试摄像头和麦克风正式考试时不要现场换浏览器。网络方面我习惯准备一个手机热点作为备用方案。家庭宽带或校园网偶尔会抽风万一考试中途断网迅速切换热点可能保住答题进度。虽然不一定用得上但这种准备成本很低关键时刻能救命。6.2 编程题的“部分得分”策略暴力解也能拿分在线笔试的编程题是按测试用例给分的不是“要么满分要么零分”。很多平台会明确提示“通过测试用例比例”哪怕只过一半用例也有对应分数。所以遇到难题不要直接放弃先写下一种能跑通的暴力解法哪怕复杂度很高也能拿部分分。具体怎么操作先看数据范围如果 n 在 100 以内O(n^2) 甚至 O(n!) 的暴力都可能过一部分如果 n 在 10^5 左右暴力基本会超时但先把暴力写出来也能帮助理解题目、找到优化方向。比如前面说的滑动窗口题如果你第一时间没想到滑动窗口可以先写一个双重循环求每个长度为k的窗口和也能过一些数据小的测试用例。等暴力版本通过后再往滑动窗口优化。另外写代码时不要忽略输入读取和输出格式。平台对输出的要求非常严格多一个空格、少一个换行都可能导致判题失败。我习惯在本地IDE里把示例输入输出跑通后再提交并且在代码开头把input()读取逻辑写得健壮一些避免空白字符干扰。7. 笔试之后的复盘动作把考题变成面试素材7.1 笔试与面试之间的时间窗口怎么利用笔试结束后一般不会立刻出结果中间可能隔一周到两周。很多人这段时间就是干等实际上这是很好的准备期。笔试中暴露出来的薄弱点大概率也是面试中会被追问的点。我当时在笔试结束后当晚趁着记忆还新鲜把每道编程题的题干、考点、我的解法、以及卡住的地方都记了下来第二天再对着考纲逐个确认。如果笔试中某道题没做出来那简直是面试前的“预演题库”。比如你连最短路都没写利索那就趁这段时间把 Dijkstra 和堆优化彻底搞懂因为面试手撕代码时很可能遇到同类问题。就算最终没进携程面试这套从笔试里提炼出的查漏补缺清单在你面其他公司时也一样能用。7.2 错题复盘的具体方法一张表格搞定复盘不是把题目抄一遍就完了我建议做一张结构化表格按“题号、题型、考点、我的解法、正确解法、涉及的基础知识、需要补的内容”来整理。这张表的价值在于它能帮你把零散的错题变成清晰的复习地图。我当时的表格大致长这样题号题型考点问题正确解法需要补的基础1基础多选索引失效漏选函数/隐式转换会失效最左前缀不会索引底层B树原理2编程滑动窗口暴力超时维护窗口和O(n)双指针思想3编程约束最短路未做完全Dijkstra状态维度优先队列用法复盘完成后最好把每道错题的核心思路用自己的话讲一遍。能给别人讲明白才说明真的掌握了。我后来在面试中被问到数据库索引的慢查询优化当时第一反应就是笔试那道多选题顺势把索引失效场景和优化思路都答了出来。这种“把笔试错题变成面试答案”的转化是整个秋招里最高效的学习路径。要说这次第三批笔试真正留给我什么倒不是一张卷子的分数而是刷题之外的几个习惯考试前先检查设备和网络做题时先抓大分值题型编程题先暴力保底再优化考完当天立刻复盘。这些习惯在后来的所有笔试里都在反复帮我止损。携程的第三批笔试不是终点它是整个秋招流程里最能帮你摸底的一个节点。如果你手上恰好有同样一场笔试不妨把上面的策略直接用起来至少能让你少踩几个我当年踩过的坑。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门