Coinbase 面试经验分享 | Coinbase 面试辅导 面试技巧 面试代面
更多资源与服务
想要了解更多编程面试技巧,或者需要专业的面试辅导、OA代做、简历润色等服务?我们提供全方位的求职面试支持,帮助您在大厂面试真题、系统设计面试和算法面试中脱颖而出,轻松拿到心仪的 offer!无论您是留学生、刚踏入职场的新人,还是需要代码优化建议的开发者,我们的团队由ACM奖牌得主、大厂资深 TLM 及经验丰富的行业老兵组成,确保为您提供最专业的指导。
扫描下方二维码,添加我们的微信,获取更多服务:
关键词:
- 面试代面
- 代码代写
- OA代做
- 面试技巧
- 面试经验分享
- 职业规划
- 编程练习
让我们帮助您在技术面试中脱颖而出,实现职业上的飞跃!
面试轮次:
- 2 轮 Coding
- 1 轮 BQ (Behavioral Questions)
- 1 轮 System Design
面试官非常Responsive,即使面试挂了也会具体说明哪个环节出了问题。这次我挂在了 System Design 环节。
Coding 轮:Crypto Trading Order 系统
关键词:订单管理、交易系统、数据结构
基础题目:
实现一个交易订单系统,具备以下功能:
- 下单:place order
- 显示实时订单:display live order
- 暂停订单:pause order
- 恢复订单:resume order
- 取消订单:cancel order
示例:
make_order(id=1, currency="BTC", amount=1)
解法:
- 创建一个数据结构
order_info
用于存储订单内容:
class order_info:
self.currency
self.amount
self.timestamp
self.buy = True or False
self.state = ["live", "pause", "completed", "cancel"]
- 使用
OrderedDict()
存储实时订单,确保订单顺序。 - 创建两个结构:
- 存储未完成的订单
- 存储暂停的订单,以便快速管理。
扩展题 1:支持多用户订单管理
- 在
order_info
中添加self.userID
。 - 每个用户的订单存储在一个
set()
中,以便快速查找和删除。
扩展题 2:将订单分片处理
- 根据
userID % 3
将订单分配到 3 个 Stream 中。 - 每次修改订单时,通过
userID % 3
找到对应的 Stream。
Coding 轮:Pagination 实现
关键词:分页系统、数据过滤、Cursor 优化
基础题目:
提供以下数据:
time, id, user, currency, amount
[1, 3, 1, 1, 5],
[2, 4, 1, 2, 2],
[3, 5, 2, 2, -10],
[4, 6, 2, 1, 2]
- 功能要求: 根据时间、用户和货币类型进行过滤。
扩展题 1:分页显示过滤后的数据
示例:
set_page_size(size=2)
set_time(start_time=1, end_time=3)
next_page() -> [
[1, 3, 1, 1, 5],
[2, 4, 1, 2, 2]
]
next_page() -> [
[3, 5, 2, 2, -10]
]
next_page() -> []
扩展题 2:处理大规模数据集的分页
- 使用 Cursor 进行分页比基于 Index Offset 更有效。
- 参考:[Live Comments 高级设计](https://www.hellointerview.com/l ... ys/fb-live-comments) 中的分页实现。