Interval

An interval is a subset of an array where the array consists of two element arrays. The two elements represent a start and end value.

interval := [][2]int{}

It is important when considering intervals to figure out if they should be inclusive or exclusive when it comes to overlapping and if the starting value will always be smaller than the ending value.

Corner cases

Techniques

Sort the array by starting point

This is a crucial strategy when handling interval merging

Checking if two intervals overlap

func overlap(a, b [2]int) bool {
	return a[0] < b[1] && b[0] < a[1]
}

Merging intervals

func mergeOverlappingIntervals(a, b [2]float64) [2]float64 {
	return [2]float64{ math.Min(a[0], b[0]), math.Max(a[1], b[1])
}

References