LeetCode/go/count-days-without-meetings.go

27 lines
494 B
Go

package main
import (
"cmp"
"slices"
)
func countDays(days int, meetings [][]int) int {
compareMeetings := func(a, b []int) int {
return cmp.Or(cmp.Compare(a[0], b[0]), cmp.Compare(a[1], b[1]))
}
slices.SortFunc(meetings, compareMeetings)
free, latestEnd := 0, 0
for _, meeting := range meetings {
start, end := meeting[0], meeting[1]
if start > latestEnd+1 {
free += start - latestEnd - 1
}
latestEnd = max(latestEnd, end)
}
free += days - latestEnd
return free
}