Advertisement
Ritam_C

leetcode intervals

Feb 15th, 2021
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.32 KB | None | 0 0
  1. #include <algorithm>
  2. class Solution {
  3. private:
  4.     static bool comp(vector<int> v1, vector<int> v2){
  5.         if(v1[0] > v2[0]){
  6.             return false;
  7.         } else if(v1[0] == v2[0]){
  8.             if(v1[1] > v2[1]){
  9.                 return false;
  10.             } else{
  11.                  return true;
  12.             }
  13.         } else{
  14.             return true;
  15.         }
  16.     }
  17. public:        
  18.     vector<vector<int>> merge(vector<vector<int>>& intervals) {
  19.         sort(intervals.begin(), intervals.end(), comp);
  20.    
  21.         vector<vector<int>> v;
  22.         set<vector<int>> s;
  23.         for(int i = 0; i < intervals.size(); i++){
  24.             vector<int> t = intervals[i];
  25.             if(s.find(t) == s.end()){
  26.                 int k = t[1], p = t[0];
  27.                 s.insert(t);
  28.                 for(int j = i+1; j < intervals.size(); j++){
  29.                     if(k >= intervals[j][0]){
  30.                         if(s.find(intervals[j]) == s.end()){
  31.                             s.insert(intervals[j]);
  32.                             t = intervals[j];
  33.                             k = max(k, t[1]);
  34.                             p = min(p, t[0]);
  35.                         }
  36.                     }
  37.                 }
  38.                 v.push_back({p, k});
  39.             }
  40.            
  41.         }
  42.        
  43.         return v;
  44.     }
  45. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement