C#中怎么找出一个数组的固定长度子数组,并使子数组之和最大
C#中如何找出一个数组的固定长度子数组,并使子数组之和最大?
如果有一个double类型的数组为Q[30],怎么样找到其中的一个子数组q[7],并使q[7]中各项之和最大?
------解决思路----------------------
如果有一个double类型的数组为Q[30],怎么样找到其中的一个子数组q[7],并使q[7]中各项之和最大?
------解决思路----------------------
static int max(double[] values, int count)
{
double sum = 0;
for (int index = count; index != 0; sum += values[--index]) ;
double maxSum = sum;
int startIndex = 0;
for (int index = count; index != values.Length; ++index)
{
if ((sum += values[index] - values[index - count]) > maxSum)
{
maxSum = sum;
startIndex = index - count;
}
}
return startIndex;
}