- 异步多请求聚合题:核心用 Java 的 CompletableFuture + 自定义线程池实现多下游并行调用,通过 allOf 聚合结果、orTimeout 控制超时,单个服务异常隔离不影响整体,线程池选 CallerRunsPolicy 避免任务丢失,保证接口响应速度和可用性;
- 40 亿 URL 查询题:用布隆过滤器解决海量数据内存不足问题,依托比特位存储 + 多哈希函数实现高效查询,特性是无漏判、误判率可控,内存不足时可通过分片 / 磁盘映射(MMAP)优化
![IMG_20260310_153338]()
![IMG_20260310_153331]()
一、两数之和
- 核心考点:哈希表的空间换时间思想
- 易记实现方案:
- 用 HashMap 存「数组值 - 下标」,遍历数组时算
目标值-当前值的差值
- 差值在 Map 里→返回 [差值下标,当前下标];不在→把当前值和下标存入 Map
- 口诀:先查后存,差值匹配
二、整数翻倍查找
- 核心考点:循环逻辑 + 集合快速查询
- 易记实现方案:
- 数组转 HashSet(O (1) 查询),while 循环判断当前值是否在集合中
- 在→翻倍,不在→跳出返回;无需显式 break,循环条件自带终止逻辑
- 口诀:集合存值,循环翻倍,条件终止
三、物料组分查询
- 核心考点:树形结构遍历(递归 / 迭代)
- 易记实现方案:
- 单层查询:直接查 detail 表,返回当前物料的直接子项
- 多层查询:递归(或迭代 + 队列),每次查 detail 表获取直接子项,逐层往下查
- 口诀:单层直查,多层递归 / 迭代,本质都是查 detail 表
posted @
2026-03-18 18:26
宁山
阅读(
2)
评论()
收藏
举报