用 Python 编写程序,根据间隔时间找出最多可以选修的课程数量?
pythonserver side programmingprogramming更新于 2026/2/16 8:44:17
假设我们有一个 [start, end] 形式的间隔列表,这表示课程的开始和结束时间。我们必须找到我们可以选修的最大课程数量,假设我们一次只能选修一门课程,并且课程的开始时间必须晚于最后一门课程的结束时间。
因此,如果输入为 times = [[3, 6],[6, 9],[7, 8],[9, 11]],则输出将为 3,因为我们可以选修课程 [[3, 6], [7, 8], [9, 11]]
为了解决这个问题,我们将遵循以下步骤:
根据结束时间对时间进行排序
counter := 0, end := -1
for i in range 0 to size of times, do
if times[i, 0] > end 非零,则
counter := counter + 1
end := times[i, 1]
返回 counter
让我们看看以下实现以便更好地理解:
示例
class Solution: def solve(self, times): times.sort(key=lambda x: x[1]) counter = 0 end = -1 for i in range(len(times)): if times[i][0] > end: counter += 1 end = times[i][1] return counter ob = Solution() times = [ [3, 6], [6, 9], [7, 8], [9, 11] ] print(ob.solve(times))
输入
[ [3, 6],[6, 9],[7, 8],[9, 11]]
输出
3
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

