1. 程式人生 > 其它 >Android技術篇!2021Android不死我不倒,全網首發!

Android技術篇!2021Android不死我不倒,全網首發!

粗暴方法,先把所有區間按照左邊界的大小排序,然後在一個個遍歷,如果有重疊部分的就重疊起來,如果沒有的就將維護的res-temp變數加入結果陣列中,最費勁的是兩個區間之間的關係沒有搞清楚,花了一些時間,貼程式碼。

 1 bool cmp(vector<int>& a,vector<int>& b)
 2 {
 3     return a[0]<b[0];
 4 }
 5 class Solution {
 6 public:
 7     vector<vector<int>> merge(vector<vector<int
>>& intervals) 8 { 9 sort(intervals.begin(),intervals.end(),cmp); 10 vector<vector<int>> res; 11 vector<int> res_temp = intervals[0]; 12 for(auto inter_temp:intervals) 13 { 14 if(inter_temp[0]<=res_temp[1] && inter_temp[1
]>res_temp[1]) 15 { 16 res_temp[1] = inter_temp[1]; 17 } 18 else if(res_temp[1]<inter_temp[0]) 19 { 20 res.push_back(res_temp); 21 res_temp = inter_temp; 22 } 23 } 24 res.push_back(res_temp);
25 return res; 26 } 27 };

沒想到我這土方法也能叫雙指標,牛。