Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- class Solution {
- private:
- static bool comp(vector<int> v1, vector<int> v2){
- if(v1[0] > v2[0]){
- return false;
- } else if(v1[0] == v2[0]){
- if(v1[1] > v2[1]){
- return false;
- } else{
- return true;
- }
- } else{
- return true;
- }
- }
- public:
- vector<vector<int>> merge(vector<vector<int>>& intervals) {
- sort(intervals.begin(), intervals.end(), comp);
- vector<vector<int>> v;
- set<vector<int>> s;
- for(int i = 0; i < intervals.size(); i++){
- vector<int> t = intervals[i];
- if(s.find(t) == s.end()){
- int k = t[1], p = t[0];
- s.insert(t);
- for(int j = i+1; j < intervals.size(); j++){
- if(k >= intervals[j][0]){
- if(s.find(intervals[j]) == s.end()){
- s.insert(intervals[j]);
- t = intervals[j];
- k = max(k, t[1]);
- p = min(p, t[0]);
- }
- }
- }
- v.push_back({p, k});
- }
- }
- return v;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement