Leetcode - Merge Intervals
https://leetcode.com/problems/merge-intervals/
Given a collection of intervals, merge all overlapping intervals.
Example 1:
Input: [[1,3],[2,6],[8,10],[15,18]] Output: [[1,6],[8,10],[15,18]] Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6].
func merge(intervals [][]int) [][]int { if len(intervals) == 0 || len(intervals[0]) == 0 { return [][]int{} } sort.Slice(intervals, func(i, j int) bool { return intervals[i][0] < intervals[j][0] }) result := [][]int{} for i := 1; i < len(intervals); i++ { if intervals[i-1][1] < intervals[i][0] { result = append(result, intervals[i-1]) continue } if intervals[i-1][1] >= intervals[i][0] { intervals[i] = []int{intervals[i-1][0], max(intervals[i-1][1], intervals[i][1])} } } result = append(result, intervals[len(intervals)-1]) return result } func max(a, b int) int { if a > b { return a } return b }