Python程式:根據時間區間查詢可以選修的最大課程數
假設我們有一系列區間,格式為[開始時間, 結束時間],表示課程的開始和結束時間。我們必須找到可以選修的最大課程數,假設我們一次只能選修一門課程,並且一門課程的開始時間必須晚於上一門課程的結束時間。
因此,如果輸入類似於 times = [[3, 6],[6, 9],[7, 8],[9, 11]],則輸出為 3,因為我們可以選修課程 [[3, 6], [7, 8], [9, 11]]
為了解決這個問題,我們將遵循以下步驟:
根據結束時間排序課程
計數器 := 0,結束時間 := -1
對於 i 從 0 到 times 的大小,執行:
如果 times[i, 0] > end 為真,則
計數器 := 計數器 + 1
結束時間 := times[i, 1]
返回計數器
讓我們看看下面的實現來更好地理解。
示例
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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP