1class Solution {2public:3// sort wrt. end value45static bool compare(vector<int> &a, vector<int> &b) {6if (a[1] == b[1])7return a[0] < b[0];8else9return a[1] < b[1];10}1112int intersectionSizeTwo(vector<vector<int>> &intervals) {13int n = intervals.size();1415// sort the array1617sort(intervals.begin(), intervals.end(), compare);1819vector<int> res;2021res.push_back(intervals[0][1] - 1);2223res.push_back(intervals[0][1]);2425for (int i = 1; i < n; i++) {26int start = intervals[i][0];2728int end = intervals[i][1];2930if (start > res.back()) {31res.push_back(end - 1);3233res.push_back(end);34} else if (start == res.back()) {35res.push_back(end);36} else if (start > res[res.size() - 2]) {37res.push_back(end);38}39}4041return res.size();42}43};