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;
}
};