关注
[编程|25分] 简单易懂的秒杀服务 时间限制:5秒 空间限制:65536K 题目描述 实现一个简易的秒杀服务,有3个接口: 1. 添加一个秒杀活动 addActivity(int startTime, int endTime, int goodsId, int limitQuantity) 参数说明: * 时间区间为左闭右开:[startTime, endTime) 。数据保证 startTime < endTime,startTime 大于当前时间戳 * goodsId 一定为存在的商品id。每个goodsId至多添加一次秒杀活动。 * limitQuantity > 0 返回值有以下两种情况: * 添加成功,返回秒杀活动ID (从0开始自增) * 秒杀商品数量大于商品库存,添加失败,返回-1 2. 购买秒杀商品 buyGoods(int activityId, int quantity) 参数说明: * activityId 一定是请求时存在的活动id * quantity > 0 返回值有以下三种情况: * 购买成功,减少库存,返回0 * 购买数量大于秒杀商品剩余数量,购买失败,返回-1 * 秒杀未开始或已结束,购买失败,返回-1 3. 获取秒杀活动列表 getActivityList() 获取当前时刻的秒杀活动列表 秒杀列表排序方式:进行中(未售罄) > 进行中(售罄) > 未开始 * 对于「进行中(未售罄)」:依次按商品人气值从高到低、商品ID从小到大排序 * 对于「进行中(已售罄)」:依次按最后卖出时间从晚到早、商品人气值从高到低、商品ID从小到大排序 * 对于「未开始」:依次按开始时间从早到晚、商品人气值从高到低、商品ID从小到大排序 * 对于已结束的秒杀,不返回。 返回秒杀活动id列表 商品拥有以下属性: * 商品ID,32位非负整数 * 人气值,32位非负整数 * 库存,32位非负整数 现给出一串请求,每个请求的格式为:时间戳 函数名 参数。请对每个请求都输出其返回结果 (请求已经按照时间先后顺序排序过) 。 数据范围: * 商品数量 N <= 10,000 * 请求数量 M <= 10,000 * add 数量 A <= 1,000 * buy 数量 B <= 10,000 * list 数量 L <= 100 输入描述: 第一行是两个整数 N 和 M ,分别表示商品数量和请求数量。
接下来有 N 行,每行表示一个商品,具体格式为:3个整数(被空格分隔)分别表示商品ID,人气值,库存
接下来有 M 行,每行表示一个请求,请求已经按时间戳从小到大排序。
具体格式为:时间戳 请求类型 请求参数...
* 时间戳:正整数
* 请求类型,共三种:"add", "buy" 和 "list"
* 请求参数:按题目描述中的顺序,参数之间空格分隔 输出描述: 对每个请求,输出其返回值,一个请求的输出占一行:
* add:成功输出id,失败输出-1
* buy:成功输出0,失败输出-1
* list:输出活动id列表,按要求的顺序,相邻数字之间用一个空格分隔。若列表为空,则输出空行。 示例1 输入 6 13
1001 1 10
1002 1 10
1003 2 10
1004 2 10
1005 2 10
1006 3 10
1 add 2 20 1001 10
2 buy 0 1
3 buy 0 10
4 add 5 6 1002 2
5 list
6 buy 1 1
7 add 10 20 1003 11
8 add 10 20 1003 8
9 add 10 20 1004 3
10 add 11 20 1005 5
11 add 20 30 1006 1
12 buy 3 3
13 list 输出 0
0
-1
1
0 1
-1
-1
2
3
4
5
0
2 4 0 3 5
查看原帖
点赞 6
相关推荐
查看5道真题和解析 点赞 评论 收藏
分享
牛客49896997...:电话都漏出来,要保护个人隐私,我先来,你说我见过最美的牛客女孩 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客吐槽大会 #
14824次浏览 229人参与
# 实习,不懂就问 #
159759次浏览 1416人参与
# 晒晒你司的新年福利 #
1410次浏览 25人参与
# 国企秋招,你投了吗? #
58984次浏览 377人参与
# 程序员找工作至少要刷多少题? #
1566次浏览 24人参与
# 暑假倒计时,你都干了些啥? #
39562次浏览 207人参与
# 硬件/芯片公司工作体验 #
146885次浏览 960人参与
# 软开人,秋招你打算投哪些公司呢 #
178593次浏览 1355人参与
# 硬件人秋招进展 #
269457次浏览 3983人参与
# 毕业后不工作的日子里我在做什么 #
232986次浏览 1691人参与
# 帆软软件工作体验 #
11504次浏览 55人参与
# 运营人求职交流聚集地 #
208684次浏览 1091人参与
# 学历or实习经历,哪个更重要 #
232907次浏览 1225人参与
# 实习越久越好,还是多多益善? #
69131次浏览 332人参与
# AI“智障”时刻 #
23849次浏览 119人参与
# 你觉得实习能学到东西吗 #
134943次浏览 1454人参与
# 第一份工作应该只看薪资吗 #
233957次浏览 1855人参与
# 电信求职进展汇总 #
39797次浏览 197人参与
# 关于春招你都做了哪些准备? #
125904次浏览 717人参与
# AI求职实录 #
20425次浏览 488人参与
