Skip to content

Commit 8c1d371

Browse files
🔢 Day 18
1 parent 46c1d3e commit 8c1d371

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
1. [Range Sum of BST](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/566/week-3-november-15th-november-21st/3532/) ➡️ [CPP Solution](Week3/rangeSumBST.cpp)
2727
2. [Longest Mountain in Array](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/566/week-3-november-15th-november-21st/3533/) ➡️ [CPP Solution](Week3/longestMountain.cpp)
2828
3. [Mirror Reflection](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/566/week-3-november-15th-november-21st/3534/) ➡️ [CPP Solution](Week3/mirrorReflection.cpp)
29+
4. [Merge Intervals](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/566/week-3-november-15th-november-21st/3535/) ➡️ [CPP Solution](Week3/merge.cpp)
2930

3031
## Week 4 🚧
3132
Coming soon...

Week3/merge.cpp

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
class Solution {
2+
public:
3+
static bool compare(vector<int> I1, vector<int> I2) {
4+
return I1[0] == I2[0] ? I1[1] < I2[1] : I1[0] < I2[0];
5+
}
6+
vector<vector<int>> merge(vector<vector<int>>& intervals) {
7+
int n = intervals.size();
8+
if(n == 1) return intervals;
9+
10+
vector<vector<int>> res;
11+
sort(intervals.begin(), intervals.end(), compare);
12+
13+
int i = 0;
14+
res.push_back(intervals[i]);
15+
16+
for(int j = 1; j < n; ++j) {
17+
vector<int>& interval = res.at(i);
18+
19+
if(intervals[j][0] <= interval[1]) {
20+
interval[1] = max(intervals[j][1], interval[1]);
21+
} else {
22+
res.push_back(intervals[j]);
23+
i++;
24+
}
25+
}
26+
27+
return res;
28+
}
29+
};

0 commit comments

Comments
 (0)