436. 寻找右区间–LeetCode_暴力
来源:力扣(LeetCode)
链接://leetcode.cn/problems/find-right-interval
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题目大意是这样的
数组中的元素由一个区间组成(包含一个左端点和右端点),左端点一定是唯一的
找到每个元素的右区间
举个例子
假设区间A为[1,2],那么区间A的右区间最好就是[2,3]
也就是说区间A右区间的左端点是大于等于区间A右端点的最小数
代码如下
class Solution {
public:
vector<int> findRightInterval(vector<vector<int>>& intervals) {
vector<int> res;
// intervals的长度为1时要做特判
if(intervals.size()==1){
res.push_back(-1);
return res;
}
// a存放intervals[i]的右区间的位置 b存放枚举过程中的左端点,最终会存放最小的左端点
int a,b;
for(int i=0;i<intervals.size();i++){
int j=0;
// 因为要找最小的左端点,所以可以设初始值为左右端点的最大值1e6+10,这个最大值由题目给出
b = 1e6+10;
for(;j<intervals.size();j++){
if(intervals[j][0]>=intervals[i][1] && intervals[j][0]<b){
b = intervals[j][0];
a=j;
}
}
if(b!=1e6+10)res.push_back(a);
else res.push_back(-1);
}
return res;
}
};