主题
数据结构与算法
这些题与问题库里的是同一批,这里按各自主要考察的能力分组。
19 道问题
A · 专业解题与实现18
- 实现一个很小的缓存,容量满时淘汰最久未使用的条目。各操作需要什么时间复杂度,你会先写哪些测试?
- 你需要一个既能快速插入、快速查找,又能按顺序遍历的结构。你会如何在几种候选结构之间选择,又会放弃什么?
- 请实现一个重试封装:调用外部服务失败时按规则重试,同时不让重试压垮对方。先说明接口,再写代码,并说明怎样让它在测试里可确定地运行。
- 请实现一个支持并发读写、按条目过期并可清理过期数据的映射。你会如何定义过期语义、同步边界和确定性测试?
- 实现一个小型任务队列,支持并发 worker、任务取消和失败重试;测试不能依赖真实 sleep。你会怎样设计调度接口和状态转换?
- 实现一个逐块接收 UTF-8 数据的增量日志解析器:输入块可能截断多字节字符、字段顺序变化,也可能包含多条记录或超长单行。请定义解析状态、错误恢复策略和内存上限,并实现可重复解析的核心逻辑。
- 请设计一个可复用的长列表虚拟化组件:滚动窗口只渲染可见项,但行内选择状态不能因回收和复用 DOM 而串到其他数据。你会怎样定义接口并测试?
- 某对象重写了相等判断,却仍使用默认哈希实现,放入哈希集合后出现查找失败。请解释相等与哈希接口约定,并说明如何构造测试。
- 一台机器开始频繁发生 major page fault,同时磁盘 I/O 升高。你会怎样判断工作集变化、内存压力和应用访问模式各自的作用?
- 服务部署到多路CPU机器后,线程在NUMA节点间迁移,内存访问延迟出现波动。你会如何结合CPU亲和性、内存分配和调度行为设计验证?
- 服务完成证书轮换后,短连接正常,但部分客户端在长连接断开后重新连接或恢复会话时握手失败。你会怎样区分证书链、会话恢复、连接池和客户端缓存的影响?
- 移动网络从Wi-Fi切换到蜂窝网络时,部分HTTP/3请求失败但会话仍显示在线。你会如何检查路径迁移、超时和中间网络设备的影响?
- 程序先写入数据文件再更新索引,但断电恢复后索引指向不完整内容。你会如何分析写入顺序、刷盘语义和恢复协议?
- 给你一组可能大于内存容量的记录,需要分批处理并允许调用方取消任务。请说明或实现一个接口,使内存占用有界、错误可定位、取消后不再启动新批次。
- 输入是一组可能重叠、端点可相接的时间区间,调用方需要查询某个时刻对应哪些记录。请说明或实现归并与查询策略,并明确边界是否包含端点。
- 事件会以流的方式到达,少量重复可能间隔数小时;程序需限制内存,并在进程重启后继续保持去重效果。你会如何说明时间窗口、持久化状态和误判边界?
- 输入包含大量带时间戳的记录,要求返回分数最高的 K 项,分数相同时保留较早项。你会怎样实现并分析边界?
- 多个数据源各自按时间排序,但总量远大于内存。请说明如何合并输出,并处理单个数据源短暂变慢或断开的情况。
当前目标在这里暂无匹配题。 ·