Assuming that your logic to get biggest product is correct already, you can simply have additional variable maxSubArray
that works in similar way as max
variable :
int[] array = { 4, 1, -7, -8, 9, 2, 0, 5 };
int L = 3;
int max = Int32.MinValue;
ArraySegment<int> maxSubArray = new ArraySegment<int>();
for (int i = 0; i <= array.Length - L; i++)
{
var subArray = new ArraySegment<int>(array, i, L);
var product = subArray.Aggregate((a, b) => a * b);
if (product > max)
{
max = product;
maxSubArray = subArray;
}
}
Console.WriteLine(max);
foreach (var i in maxSubArray)
{
Console.WriteLine(i);
}