MCPcopy Create free account
hub / github.com/austingebauer/go-leetcode / merge

Function merge

merge_intervals_56/solution.go:9–35  ·  view source on GitHub ↗

Second solution

(intervals [][]int)

Source from the content-addressed store, hash-verified

7
8// Second solution
9func merge(intervals [][]int) [][]int {
10 if len(intervals) == 0 || len(intervals) == 1 {
11 return intervals
12 }
13
14 // sort the intervals by start time
15 sort.Slice(intervals, func(i, j int) bool {
16 return intervals[i][0] < intervals[j][0]
17 })
18
19 j := 0
20 merged := [][]int{intervals[0]}
21 for i := 1; i < len(intervals); i++ {
22 prev := merged[j]
23 next := intervals[i]
24
25 // should we merge the interval
26 if next[0] <= prev[1] {
27 prev[1] = int(math.Max(float64(prev[1]), float64(next[1])))
28 } else {
29 merged = append(merged, next)
30 j++
31 }
32 }
33
34 return merged
35}
36
37// First solution
38func merge0(intervals [][]int) [][]int {

Callers 1

Test_mergeFunction · 0.70

Calls

no outgoing calls

Tested by 1

Test_mergeFunction · 0.56