Go Min Avg Two Slice
func minAvgTwoSlice(a []int) int {
idx := 0
min := float64(a[0]+a[1]) / 2
for i := 0; i < len(a)-1; i++ {
cur := float64(a[i]+a[i+1]) / 2
if i+2 < len(a) {
three := float64(a[i]+a[i+1]+a[i+2]) / 3
if three < cur {
cur = three
}
}
if cur < min {
min = cur
idx = i
}
}
return idx
}
This leans on the key trick for this problem: the minimum average slice is always length 2 or 3.