leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
0731.cpp (673B)
0 class MyCalendarTwo {
1 using interval = pair<int, int>;
2 vector<interval> sgl, dbl;
4 static bool isOverlap(int s1, int e1, int s2, int e2) { return max(s1, s2) < min(e1, e2); }
6 static interval overlap(int s1, int e1, int s2, int e2) { return {max(s1, s2), min(e1, e2)}; }
8 public:
9 bool book(int start, int end) {
10 for (const auto [s, e] : dbl) {
11 if (isOverlap(start, end, s, e)) return false;
12 }
14 for (const auto [s, e] : sgl) {
15 if (!isOverlap(start, end, s, e)) continue;
16 dbl.push_back(overlap(start, end, s, e));
17 }
19 sgl.emplace_back(start, end);
20 return true;
21 }
22 };