限时 Coding:滑动窗口 + 去重
给定一串用户行为日志,每条包含 userId、eventType、timestamp。找出任意 10 分钟窗口内完成 view、click、purchase 三步的 unique users 数量,并处理同一用户重复事件。
参考思路
- 先澄清 timestamp 单位、窗口是否闭区间、同一用户重复事件如何去重。
- 按 timestamp 排序,用双指针维护 10 分钟窗口,用 per-user 状态记录三类事件是否出现。
- 窗口右移时加入事件,左移时删除事件;删除时要能知道用户是否仍在窗口内有同类事件。
- 最后统计状态同时包含三类事件的用户数,说明复杂度和内存成本。
面试官主要看:是否先定义业务口径、是否能处理重复事件、窗口边界和用户状态回退。
