寻找右区间
感觉题目交代的优点小问题。
class Solution {
public:
vector<int> findRightInterval(vector<vector<int>>& intervals) {
vector<int> ans;
vector<pair<int,int>> v;
int n = intervals.size();
for(int i=0;i<n;i++){
v.push_back(make_pair(intervals[i][0],i));
}
sort(v.begin(),v.end());
for(int i=0;i<n;i++){
int y = intervals[i][1];
int l = 0, r = n-1;
if(v[r].first<y){
ans.push_back(-1);
}else{
while(l<r){
int m = l+(r-l)/2;
if(v[m].first<y){
l = m+1;
}else{
r = m;
}
}
ans.push_back(v[l].second);
}
}
return ans;
}
};