描述:
給出若干閉合區間,合併所有重疊的部分。
樣例:
給出的區間列表 => 合併後的區間列表:
思路:[ [
[1, 3], [1, 6],
[2, 6], => [8, 10],
[8, 10], [15, 18]
[15, 18] ]
]
首先先寫乙個比較規則comp,然後用sort(,,)將intervals按其start從小到大排序,這樣可以避免合併區間時的許多問題。
然後再建立乙個vector v,將intervals中的區間與v中的逐一比較,若有相同,則合併,其他則將其存入v,由於之前對intervals
已將排過序,所以intervals與v中元素比較時有重複區間的只有兩種情況:
1.intervals[i].start<=v[j].end && intervals[i].end>=v[j].end
2.intervals[i].start>=v[j].start && intervals[i].end<=v[j].end
其他情況則是無相同區間,新存入v即可。
ac**:
/**
* definition of interval:
* classs interval
*/class solution
vectormerge(vector&intervals)
if(intervals[i].start<=v[j].end && intervals[i].end>=v[j].end)
}if(j==v.size())
v.push_back(intervals[i]);
}return v;
}};
LintCode 合併區間
題目描述 給出若干閉合區間,合併所有重疊的部分。樣例 給出的區間列表 合併後的區間列表 1,3 1,6 2,6 8,10 8,10 15,18 15,18 做題思路 先用bool函式規定一種排序演算法,每個陣列的第乙個數字比較,按照公升序的方法排列。運用sort函式將intervals的陣列按照規定...
lintcode練習 156 合併區間
給出若干閉合區間,合併所有重疊的部分。您在真實的面試中是否遇到過這個題?是 given intervals merged intervals 1,3 1,6 2,6 8,10 8,10 15,18 15,18 o n log n 的時間和 o 1 的額外空間。實現 思路 先對列表按照start進行排...
lintcode 156 合併區間
給出若干閉合區間,合併所有重疊的部分。樣例給出的區間列表 合併後的區間列表 1,3 1,6 2,6 8,10 8,10 15,18 15,18 挑戰 o n log n 的時間和 o 1 的額外空間。標籤排序 陣列 領英 谷歌 思路 由於題目沒有明確說明輸入集是有序的,所以首先對輸入集排序 自定義比...