Shopee后端开发二面面经
- 轮次
- 二面
- 时间
- 2026-07
- 来源
- 牛客网
《面试题目》
- 请做自我介绍。
- 请介绍项目并说明其中的技术挑战。
- 给定
k个数组,如何求它们的交集? - C++ 和 Java 的主要区别是什么?
- 如何设计一个相对公平的抽奖系统?
- 你有什么问题想反问?
《参考解析》
- 多数组交集:可先对每个数组排序,再用
k个指针同步扫描;也可以统计元素出现次数,保留出现次数等于数组数量的元素。需要根据数据规模选择空间或时间更优的方案。 - C++与Java:C++支持直接内存管理、模板和多范式编程,通常编译为本地代码;Java由JVM管理内存并提供跨平台运行时,开发效率和安全性更稳定。
- 公平抽奖:先定义参与资格和奖项概率,使用安全随机数生成器按权重抽取,记录抽奖种子或结果并保证请求幂等;高并发场景可预分配奖池并通过原子扣减防止超发。