去哪儿Java智能退款审核服务AI Coding笔试
- 轮次
- AI Coding笔试
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 如何在 Java 17、Spring Boot 工程中修复智能退款审核服务的汇率换算、风险阈值、状态流转和自动审核缺陷?
- 退款审核服务如何保证终态不可再次流转或修改?
- 如何实现租户与用户的双重数据隔离?
- 审计票据、审计金额等追加行为应如何保证正确记录?
- 低金额低风险请求如何自动通过,异常请求如何转人工审核?
- 在哈希表之外,实现 O(1) LRU 缓存还需要什么辅助结构?
- 推理优化中的 KV Cache 缓存的是什么,为什么能减少重复计算?
- 已知二叉树的先序遍历和中序遍历,如何求后序遍历?
- MoE 架构中的路由机制如何把输入分配给专家子网?
《参考解析》
- 先依据接口、配置和公共测试明确金额单位、汇率来源、阈值边界与状态机契约,再用独立测试覆盖正常、边界和异常路径。状态进入终态后应拒绝后续状态变更,所有读取和写入都要同时校验租户与用户归属。
- 审计记录应采用追加写入,票据号、金额和原业务请求建立关联,避免更新旧审计记录造成不可追溯。低风险自动通过要严格按阈值判断,解析、依赖或规则异常则转人工并保留错误上下文。
- LRU 通常用哈希表保存键到链表节点的映射,用双向链表维护访问顺序;读取和更新节点位置、淘汰尾节点都能保持 O(1)。
- KV Cache 保存已经计算出的各层 Key/Value 张量,自回归生成下一个 token 时复用历史结果,不缓存梯度或原始 prompt。
- 根据先序确定根,在中序中切分左右子树,递归处理左右区间后按“左、右、根”输出;也可用显式栈避免深树递归溢出。MoE 通常由门控网络为 token 选择一个或多个专家,再按权重聚合专家输出。