- 題目
給定間隔的集合,合併所有重疊間隔。 例如, 給定[1,3],[2,6],[8,10],[15,18] return [1,6],[8,10],[15,18]。
- 題目分析:合併重疊的陣列,這裡首先是定義排序規則,給所有陣列進行排序,然後合併重疊的就行了。
- 程式碼
/** * Definition for an interval. * struct Interval { * int start; * int end; * Interval() : start(0), end(0) {} * Interval(int s, int e) : start(s), end(e) {} * }; */ bool comp(const Interval &a, const Interval &b){ if (a.start == b.start)//如果第一個元素相同,就按照最後一個元素比較;如果不同就按第一個元素來排序 return a.end < b.end; else return a.start < b.start; } class Solution { public: vector<Interval> merge(vector<Interval> &intervals) { sort(intervals.begin(), intervals.end(), comp);//定義排序規則,按照升序排序 vector<Interval> res; int len = intervals.size(); for (int i=0; i<len; i++){ if (res.empty()) res.push_back(intervals[i]); else{ Interval last = res.back();//找到res裡面的最後一個元素與當前interval元素進行比較 if (last.end >= intervals[i].start){//當前一個元素end大於當前元素start時,在比較end與end之間,進行合併 res.pop_back(); last.end = max(last.end, intervals[i].end); res.push_back(last); }else//如果不能合併,直接入容器 res.push_back(intervals[i]); } } return res; } };
(合併 重疊陣列)練習容器的用法
相關文章
- 合併陣列陣列
- FLEX合併陣列Flex陣列
- 陣列及陣列物件操作 ----------包括排序,去重,合併,翻轉等陣列物件排序
- C#陣列 多個集合和陣列的操作(合併,去重,拆分,判斷)C#陣列
- JAVA 陣列 練習Java陣列
- 陣列練習題陣列
- JS--陣列物件合併JS陣列物件
- 合併兩個有序陣列陣列
- JavaScript concat()合併陣列JavaScript陣列
- php合併陣列的幾種方式PHP陣列
- 合併JavaScript陣列的N種方法JavaScript陣列
- 二維陣列練習陣列
- js如何合併兩個陣列並且刪除重複的元素JS陣列
- js如何合併兩個陣列JS陣列
- 88、合併兩個有序陣列陣列
- 演算法合併排序陣列演算法排序陣列
- js合併兩個陣列物件JS陣列物件
- Java學習之陣列練習Java陣列
- 兩個有序陣列如何合併成一個有序陣列陣列
- 將兩個有序陣列合併為一個有序陣列陣列
- 88. 合併兩個有序陣列陣列
- NumPy 陣列迭代與合併詳解陣列
- 陣列、連結串列、堆疊和佇列學習陣列佇列
- 合併陣列物件中相同的屬性值陣列物件
- 指標陣列練習排列字串指標陣列字串
- plsql 陣列的用法SQL陣列
- JS 陣列的用法JS陣列
- 陣列合並且去重&向一個陣列新增一條資料(重複的就不新增)&陣列物件去重處理陣列物件
- js陣列物件相同項合併處理JS陣列物件
- [CareerCup] 11.1 Merge Arrays 合併陣列陣列
- Java學習筆記——陣列練習(七)Java筆記陣列
- JAVA的陣列基本用法Java陣列
- 18.合併兩個有序陣列(簡單)陣列
- jQuery合併兩個陣列程式碼例項jQuery陣列
- js合併兩個陣列程式碼例項JS陣列
- array_merge和+號合併陣列的區別陣列
- JS陣列去重 – JSON陣列去重陣列JSON
- numpy學習筆記 – numpy陣列的常見用法筆記陣列