For each category, find the top 3 users with the highest total purchase amount.
Input format:
user_id, category_id, date, amount
u1, retail, 20210101, 100
u1, retail, 20210201, 200
u1, c, 20210102, 5000
u2, retail, 20210501, 200
...
Return the users with the highest total purchase amount for each category.
这道题本质上是一个按类目分组的 Top K 统计问题:先按 <code>category_id</code> 和 <code>user_id</code> 聚合每个用户在该类目下的累计购买金额,再在每个类目内对用户总金额排序,取前 3 名即可。实现时通常会用哈希表先做分组求和,再用堆、排序或分组后的局部 Top K 来完成筛选。需要注意的是,同一用户在同一类目下可能出现多条记录,必须先累计总额再比较;如果题目没有明确要求,平局时的处理规则可以按照常规排序逻辑输出。
正文完