中国电信 计算机类 笔试
- 轮次
- 笔试
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 笔试共两小时,140 分,约 50~60 道单选加 3 道编程。
- 第一部分行测(单选):推理、找规律、分析题。
- 第二部分专业知识(单选):计算机网络、操作系统、Transformer、算法。
- 编程题一:用 HashSet 统计打开的数量。
- 编程题二:区间问题(差分数组)。
- 编程题三:有向图最短路径(反向图 + BFS)。
《参考解析》
- 时间分配:50~60 道单选加 3 道编程塞进两小时,平均每道选择题不到 1 分钟,必须先把编程题的时间预留出来(作者留了 55 分钟)。行测的推理和找规律题容易陷进去,遇到题干长或第一遍没思路的直接标记跳过,最后统一蒙,别在一道题上耗掉编程题的时间。
- 差分数组:适合处理”多次区间加减、最后统一查询”的题型,做法是维护差分数组 d,区间 [l, r] 加 v 就执行 d[l] += v、d[r+1] -= v,全部操作完做一次前缀和还原出真实值,单次修改 O(1)。用的时候注意下标从 1 开始避免边界特判、还原后是否还需要在线查询(要在线就得换线段树/树状数组)、以及累加值的取值范围。
- 大数溢出这个坑:这道题第一次只过了 85%,排查十几分钟才发现是 Java 的 long 溢出,换成 BigInteger 才过。经验是看到”区间加和”这类题先估上界:区间长度乘以单次增量再乘以操作次数,超过 2^63-1 就必须上大数类型;C++ 里同理要提前考虑
__int128。溢出不会报错,只会静默给出错值,所以写之前做一次量级估算比事后调试便宜得多。 - 反向图 + BFS:求有向图中”从某点出发到目标点”的最短路径,如果要对多个起点反复查询,最省事的做法是把所有边反向建图,从目标点做一次 BFS,得到的就是每个点到目标点的距离,复杂度 O(V+E),比每个起点各跑一次快得多。这题的边界在于不可达点的处理、重边与自环,以及 BFS 的队列实现别递归溢出。