笔试题归纳

 

  • 异步多请求聚合题:核心用 Java 的 CompletableFuture + 自定义线程池实现多下游并行调用,通过 allOf 聚合结果、orTimeout 控制超时,单个服务异常隔离不影响整体,线程池选 CallerRunsPolicy 避免任务丢失,保证接口响应速度和可用性;
  • 40 亿 URL 查询题:用布隆过滤器解决海量数据内存不足问题,依托比特位存储 + 多哈希函数实现高效查询,特性是无漏判、误判率可控,内存不足时可通过分片 / 磁盘映射(MMAP)优化

 

 

IMG_20260310_153338

 

IMG_20260310_153331

 

一、两数之和

 
  1. 核心考点:哈希表的空间换时间思想
  2. 易记实现方案:
    • 用 HashMap 存「数组值 - 下标」,遍历数组时算目标值-当前值的差值
    • 差值在 Map 里→返回 [差值下标,当前下标];不在→把当前值和下标存入 Map
    • 口诀:先查后存,差值匹配
     
 

二、整数翻倍查找

 
  1. 核心考点:循环逻辑 + 集合快速查询
  2. 易记实现方案:
    • 数组转 HashSet(O (1) 查询),while 循环判断当前值是否在集合中
    • 在→翻倍,不在→跳出返回;无需显式 break,循环条件自带终止逻辑
    • 口诀:集合存值,循环翻倍,条件终止
     
 

三、物料组分查询

 
  1. 核心考点:树形结构遍历(递归 / 迭代)
  2. 易记实现方案:
    • 单层查询:直接查 detail 表,返回当前物料的直接子项
    • 多层查询:递归(或迭代 + 队列),每次查 detail 表获取直接子项,逐层往下查
    • 口诀:单层直查,多层递归 / 迭代,本质都是查 detail 表

 

posted @ 2026-03-18 18:26  宁山  阅读(2)  评论(0)    收藏  举报