Skip to content

Instantly share code, notes, and snippets.

@wszdwp
Last active April 14, 2019 15:03
Show Gist options
  • Select an option

  • Save wszdwp/d16b83c11757653f5fb3bca5cf7f47bb to your computer and use it in GitHub Desktop.

Select an option

Save wszdwp/d16b83c11757653f5fb3bca5cf7f47bb to your computer and use it in GitHub Desktop.
56. Merge Intervals
/*
* Definition for an interval.
* public class Interval {
* public var start: Int
* public var end: Int
* public init(_ start: Int, _ end: Int) {
* self.start = start
* self.end = end
* }
* }
*/
class Solution {
func merge(_ intervals: [Interval]) -> [Interval] {
var mergedIntervals = [Interval]()
//intervals.sorted(by: {(interval1: Interval, interval2: Interval) in return interval1.start < interval2.start})
for interval in intervals.sorted(by: {$0.start < $1.start}) {
if mergedIntervals.count == 0 || mergedIntervals.last!.end < interval.start {
mergedIntervals.append(interval)
} else {
mergedIntervals.last!.end = max(interval.end, mergedIntervals.last!.end)
}
}
return mergedIntervals
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment