解题思路:
(1)两个指针,依次比较
class Solution {
public:
vector<vector<int>> intervalIntersection(vector<vector<int>>& a, vector<vector<int>>& b) {
int i=0,j=0;
vector<vector<int>> v;
while(i<a.size() && j<b.size()) {
if(a[i][0]<=b[j][0] && a[i][1]<b[j][0]) i++;
else if(a[i][0]<=b[j][0] && a[i][1]>=b[j][0]) {
if(a[i][1]<=b[j][1]) {
v.push_back({b[j][0],a[i][1]});
i++;
} else {
v.push_back({b[j][0],b[j][1]});
j++;
}
} else if(a[i][0]>b[j][0] && a[i][0]>b[j][1]) j++;
else if(a[i][0]>b[j][0] && a[i][1]<=b[j][1]) {
v.push_back({a[i][0],a[i][1]});
i++;
} else {
v.push_back({a[i][0],b[j][1]});
j++;
}
}
return v;
}
};