本题等价于经典的「最大不重叠区间数」问题:给定 N 个闭区间 [Li,Ri],选出尽可能多的两两不相交的区间。
按区间的右端点 Ri 升序排序,然后依次扫描每个区间:
大语言模型推理时,显存中有一个 KV Cache,用于存储各请求的键值对。现有 N 个推理请求排队,第 i 个请求需要占用 KV Cache 中一段连续位置 [Li,Ri]。每个位置同一时间只能分配给一个请求。请选出尽可能多的请求,使它们的区间互不重叠,从而最大化批次的吞吐量。
requests:由 N 个推理请求构成的二维数组,requests[i] 表示第 i 个推理请求,其内容为 [Li,Ri]。输入
[[1,3],[2,5],[4,7],[6,9],[8,10],[11,12]]
输出
4
说明
选 [1,3], [4,7], [8,10], [11,12],共 4 个区间互不重叠,为最大可行数。
输入
[[1,3],[2,4],[3,3],[4,4]]
输出
2
说明
选 [1,3], [4,4] 共 2 个不重叠的区间。
输入
[[3,5]]
输出
1
说明
只有 1 个请求,可选择的个数就为 1。
[1, 3] 和 [3, 5] 被认为是重叠。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册