面灵AI

Shopee后端开发二面面经

轮次
二面
时间
2026-07
来源
牛客网

《面试题目》

  1. 请做自我介绍。
  2. 请介绍项目并说明其中的技术挑战。
  3. 给定 k 个数组,如何求它们的交集?
  4. C++ 和 Java 的主要区别是什么?
  5. 如何设计一个相对公平的抽奖系统?
  6. 你有什么问题想反问?

《参考解析》

  1. 多数组交集:可先对每个数组排序,再用 k 个指针同步扫描;也可以统计元素出现次数,保留出现次数等于数组数量的元素。需要根据数据规模选择空间或时间更优的方案。
  2. C++与Java:C++支持直接内存管理、模板和多范式编程,通常编译为本地代码;Java由JVM管理内存并提供跨平台运行时,开发效率和安全性更稳定。
  3. 公平抽奖:先定义参与资格和奖项概率,使用安全随机数生成器按权重抽取,记录抽奖种子或结果并保证请求幂等;高并发场景可预分配奖池并通过原子扣减防止超发。