水果湖中北路86号汉街总部国际A栋606-608室 j9-zhenren@52j9.com

体育动态

挑选互不重叠的短片段时为什么先结束更有用:规则练习第03例

2026-11-09

从一组时间片段中选择尽量多的片段时,最早开始或持续时间最短都未必给后续留下最合适的空间。一个明确的选择规则是优先考虑最早结束的片段。

所有片段都是左闭右开的区间,结束时刻等于下一段开始时刻可以相接。按结束时刻、开始时刻、编号排序,只有当前片段的开始不早于上一已选片段的结束才接受。

本例输入与约定

十二个片段的开始和结束时刻为[[5, 7], [4, 10], [24, 25], [15, 20], [1, 7], [22, 30], [11, 15], [18, 21], [22, 32], [16, 17], [17, 27], [18, 20]]。

完整计算记录

考虑编号 | 片段范围 | 上次接受段的终点(初始为-1) | 接受 4 | [1, 7] | -1 | True 0 | [5, 7] | 7 | False 1 | [4, 10] | 7 | False 6 | [11, 15] | 7 | True 9 | [16, 17] | 15 | True 3 | [15, 20] | 17 | False 11 | [18, 20] | 17 | True 7 | [18, 21] | 20 | False 2 | [24, 25] | 20 | True 10 | [17, 27] | 25 | False 5 | [22, 30] | 25 | False 8 | [22, 32] | 25 | False 最终接受5段,编号按播放顺序为[4, 6, 9, 11, 2]。

表中编号仅用于识别本例的元素。读取一个结果时,应先核对它对应的输入、处理顺序和边界约定;布尔值表示条件是否成立,空集合表示没有符合要求的对象,不应把这些字段混成同一种数值。

复核方法与适用范围

本例目标是片段数量最多,不是总播放长度最长,也没有片段权重。对十二个片段可以穷举所有子集,核对是否存在更多个互不重叠的片段,独立验证贪心结果。

如果片段之间需要额外过渡时间,或某些片段必须一起出现,原来的选择规则就不再直接适用。选择数量相同的方案可能有多种,不能要求所有正确方案的编号完全相同。

练习时可以先独立计算最前面的一步,再检查最后的整体不变量。若结论不同,应保留各步记录,定位第一处差异;只调整最终数字会掩盖规则理解上的问题。改变输入后也要重新演算,而不是照抄这一例的输出。