Count the oversized gaps
A service watchdog flags any two consecutive events that arrived further apart than a threshold.
- Timestamps are ascending, so only neighbouring pairs need comparing.
- Count the pairs whose difference is strictly more than the threshold.
- The threshold is a positive gap above which a pair counts.
timestampsGaps(timestamps: list<int>, gapThreshold: int) → int
Go needs a compiler and Drill does not host one yet, so this page is the reference rather than an exercise: the problem, worked examples, and the solution in full. To type it out, the same problem runs in Python.
Where you start
func timestampsGaps(timestamps []int, gapThreshold int) int {
}
Worked examples
| Call | Result |
|---|---|
timestampsGaps([]int{0, 10, 11, 40}, 10) | 1 |
timestampsGaps([]int{0, 10, 11, 40}, 5) | 2 |
timestampsGaps([]int{0, 5, 10}, 5) | 0 |
timestampsGaps([]int{1, 100}, 50) | 1 |
Hint
Compare each entry with the one before it and add to the count when the gap is too wide.
Reference solution in Go
func timestampsGaps(timestamps []int, gapThreshold int) int {
count := 0
for i := 1; i < len(timestamps); i++ {
if timestamps[i]-timestamps[i-1] > gapThreshold {
count++
}
}
return count
}