某系统开放了多个 Test 接口供第三方系统调用,同时记录了这些接口的调用信息。存放于日志 invokes 中,invoke 引号 [time,interfaceId],表示在时刻 time,接口 interfaceId 被调用了一次。
检查时间窗口长度 timeSegment 。对于某接口,若存在一个时间窗口 [t,t+timeSegment),其被调用的次数不少于 minLimits 次,则称该接口为高频接口。
请你根据这份日志统计出所有高频接口,并按此按钮:若没有,则为空列表 [ ]。
给定按时间非降序的调用记录 invokes,每条为 [time, interfaceId],表示时刻 time 上编号 interfaceId 被调用一次。再给定窗口长 timeSegment 与阈值 minLimits。
若某个编号存在时刻 t,使得落在半开区间 [t,t+timeSegment) 内、且属于该编号的调用次数不少于 minLimits,则该编号记为达标。求全部达标编号的升序列表;若无则 []。
invokes,1≤invokes.length≤105;0≤time≤106;0≤interfaceId≤105;time 非降序。timeSegment,1≤timeSegment≤105。minLimits,1≤minLimits≤invokes.length。达标编号的升序整型列表,可为 []。
输入
[1, 5],[2, 5],[3, 5],[10, 7],[50, 7],[51, 7]
5
3
输出
[5]
说明
编号 5 在 [1,6) 内有 3 次调用,达标。编号 7 任意连续 3 次的跨度至少为 41,不达标。
输入
[0, 1],[5, 1],[6, 2],[7, 2]
3
2
输出
[2]
说明
编号 1 两次调用跨度为 5,不小于窗口 3。编号 2 两次跨度为 1,达标。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册