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