区间重叠
本人没有算法基础,以下均为春招刷Leetcode的笔记,仅用于记录,侵权勿喷
今天刷题时发现一类区间重叠题,思路很巧妙,理解后做起来非常简单
这类题的特点就是给你一组区间,求最多多少个区间重叠
会议室Ⅱ
给你一个会议时间安排的数组 intervals ,每个会议时间都会包括开始和结束的时间,返回 所需会议室的最小数量
输入:intervals = [[0,30],[5,10],[15,20]]
输出:2
思路
我们将区间转化为两次操作,对于每一个区间,区间开始会申请一个会议室,区间结束会释放一个会议室
将操作按发生时间排序,依次执行,记录占用会议室的最大数量
实现
int minMeetingRooms(vector<vector<int>>& intervals) { |
拼车
车上最初有 capacity 个空座位。车只能向一个方向行驶(也就是说,不允许掉头或改变方向)
数组每一项包含三个数,上车人数,上车时刻,下车时刻
当且仅当你可以在所有给定的行程中接送所有乘客时,返回 true,否则请返回 false。
输入:trips = [[2,1,5],[3,3,7]], capacity = 4
输出:false
思路
与上题基本相同,不过每次操作的数量改变了
实现
bool carPooling(vector<vector<int>>& trips, int capacity) { |