二分查找
436. 寻找右区间
class Solution { public: int binsearch(vector<vector<int>>& arr, int k){ int l=0,r=arr.size()-1; if(k>arr[r][0])return -1; while(l<r){ int mid=l+(r-l)/2; if(arr[mid][0]<k)l=mid+1; else r=mid; } return arr[l][1]; } vector<int> findRightInterval(vector<vector<int>>& intervals) { vector<vector<int>> help=intervals; for(int i=0;i<intervals.size();i++){ help[i][1]=i; } sort(help.begin(),help.end(),[](vector<int>& a,vector<int>& b){return a[0]<b[0];}); vector<int> ans; for(int i=0;i<intervals.size();i++){ ans.push_back(binsearch(help,intervals[i][1])); } return ans; } };