1
class Solution {
2
public:
3
// sort wrt. end value
4

5
static bool compare(vector<int> &a, vector<int> &b) {
6
if (a[1] == b[1])
7
return a[0] < b[0];
8
else
9
return a[1] < b[1];
10
}
11

12
int intersectionSizeTwo(vector<vector<int>> &intervals) {
13
int n = intervals.size();
14

15
// sort the array
16

17
sort(intervals.begin(), intervals.end(), compare);
18

19
vector<int> res;
20

21
res.push_back(intervals[0][1] - 1);
22

23
res.push_back(intervals[0][1]);
24

25
for (int i = 1; i < n; i++) {
26
int start = intervals[i][0];
27

28
int end = intervals[i][1];
29

30
if (start > res.back()) {
31
res.push_back(end - 1);
32

33
res.push_back(end);
34
} else if (start == res.back()) {
35
res.push_back(end);
36
} else if (start > res[res.size() - 2]) {
37
res.push_back(end);
38
}
39
}
40

41
return res.size();
42
}
43
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0