LeetCode 252. 會議室(排序)

Michael阿明發表於2020-07-03

文章目錄

1. 題目

給定一個會議時間安排的陣列,每個會議時間都會包括開始和結束的時間 [[s1,e1],[s2,e2],...] (si < ei),請你判斷一個人是否能夠參加這裡面的全部會議。

示例 1:
輸入: [[0,30],[5,10],[15,20]]
輸出: false

示例 2:
輸入: [[7,10],[2,4]]
輸出: true

來源:力扣(LeetCode) 連結:https://leetcode-cn.com/problems/meeting-rooms
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

2. 解題

類似題目:LeetCode 253. 會議室 II(貪心+優先佇列)

  • 按開始時間排序後,依次檢查相鄰前一個的結束和後一個的開始時間是否重疊
class Solution {	//C++
public:
    bool canAttendMeetings(vector<vector<int>>& intervals) {
    	sort(intervals.begin(), intervals.end(),[&](auto a, auto b){
    		return a[0] < b[0];
    	});
    	for(int i = 1; i < intervals.size(); ++i)
    	{
    		if(intervals[i-1][1] > intervals[i][0])
    			return false;
    	}
    	return true;
    }
};

176 ms 26.8 MB

class Solution:# py3
    def canAttendMeetings(self, intervals: List[List[int]]) -> bool:
        intervals.sort(key=lambda a : a[0])
        for i in range(1,len(intervals)):
            if intervals[i-1][1] > intervals[i][0]:
                return False
        return True

40 ms 15.1 MB


長按或掃碼關注我的公眾號,一起加油、一起學習進步!
Michael阿明

相關文章