C# Min Avg Two Slice
static int MinAvgTwoSlice(int[] a)
{
var idx = 0;
double min = (a[0] + a[1]) / 2.0;
for (int i = 0; i < a.Length - 1; i++)
{
double cur = (a[i] + a[i + 1]) / 2.0;
if (i + 2 < a.Length)
{
double three = (a[i] + a[i + 1] + a[i + 2]) / 3.0;
cur = cur < three ? 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.