leetcode56 區間合併

2022-05-01 21:51:06 字數 784 閱讀 4352

題目:給出乙個區間集合,求合併所有重疊後的區間。

分析:區間處理先上套路,按左端點作第一維,右端點作第二維進行排序。依次考察每個區間,假設前面所有區間合併後是[left, right],若當前區間的左端點小於等於right,right=max(right, 當前區間的右端點);否則說明有空格,將[left, right]加入答案,新區間作為[left, right]。

class

solution ;

vector

int>>ans;

vector

int, int>>myinter;

for(int i = 0;i < n;i++)

myinter.push_back(make_pair(intervals[i][

0], intervals[i][1

]));

sort(myinter.begin(), myinter.end());

int left = myinter[0].first, right = myinter[0

].second;

for(int i = 1;i < n;i++)

);left =myinter[i].first;

right =myinter[i].second;}}

ans.push_back(vector

);return

ans;

}};

推薦用pair實現,因為pair會自動將first作第一關鍵字,second作第二關鍵字排序,這樣就不用自己寫個cmp函式。

Leetcode 56 合併區間

對所有區間按起點位置進行排序 遍歷到k點後的 l,r 已知的包含k點的最大區間 遍歷到k 1點,若該起點屬於 l,r 那麼可能擴充套件這個區間的終點,r max r,k 1點的end definition for an interval.struct interval interval int s,...

LeetCode 56 合併區間

給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。解題思路 1...

LeetCode 56 合併區間

給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。題意還是好理...