解法:双指针
class Solution {
public:
vector<vector<int>> intervalIntersection(vector<vector<int>>& A, vector<vector<int>>& B){
vector<vector<int>> res;
int i=0,j=0;
while(i<A.size() && j<B.size()){
int start=max(A[i][0],B[j][0]); //start为A、B子区间中较大的左边界
int end=min(A[i][1],B[j][1]); //end为A、B子区间中较小的右边界
if(start<=end) //若start<=end表明有交集
res.push_back({start,end});
A[i][1]>B[j][1] ? j++ : i++; //右边界较大的要保留
}
return res;
}
};