classSolution { public: vector<vector<int>> intervalIntersection(vector<vector<int>>& firstList, vector<vector<int>>& secondList) { int n = firstList.size(); int m = secondList.size(); vector<vector<int>> ret; int p1 = 0; int p2 = 0; while(p1<n&&p2<m){ int lo = max(firstList[p1][0],secondList[p2][0]); int hi = min(firstList[p1][1],secondList[p2][1]); if(lo<=hi){ ret.push_back({lo,hi}); } if(firstList[p1][1]>secondList[p2][1]){ p2++; }else{ p1++; } } return ret; } };