From 319cba8ae3efc7e2e627c16b0ae1c4c81110d149 Mon Sep 17 00:00:00 2001 From: Jidong Xiao Date: Thu, 14 Sep 2023 14:53:05 -0400 Subject: [PATCH] adding merge interval, non member operator overloading solution --- leetcode/p56_mergeintervals.cpp | 36 +++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 leetcode/p56_mergeintervals.cpp diff --git a/leetcode/p56_mergeintervals.cpp b/leetcode/p56_mergeintervals.cpp new file mode 100644 index 0000000..eae2ca4 --- /dev/null +++ b/leetcode/p56_mergeintervals.cpp @@ -0,0 +1,36 @@ +// sort a vector (which only has two elements) based on the first element +bool operator<(vector &A, vector &B){ + if(A[0]> merge(vector>& intervals) { + if(intervals.empty()){ + return {}; + } + + std::sort(intervals.begin(), intervals.end()); + vector> result; + int size = intervals.size(); + // traverse the vector + for(int i=0;i (result.back())[1]){ + result.push_back(intervals[i]); + }else{ + // if there is an overlap, then update the last element's second element, if it's smaller than the second element of the currently visited interval. + if((result.back())[1] < intervals[i][1]){ + (result.back())[1] = intervals[i][1]; + } + } + } + return result; + } +};