Given an array with positive and negative numbers, find the maximum average subarray which length should be greater or
equal to given length k.
Example
void maxAverage(int nums[],int k,int n)
{
float max,c_max,t_max;
for(int i=0;i<=n-k;i++)
{
for(int j=i;j<i+k;j++)
{
c_max+=nums[j];
}
if(i==0)
max=t_max=c_max;
t_max=c_max;
if(t_max>max)
{
max=t_max;
}
c_max=0;
}
float average=max/k;
printf("maxaverage of subarray is %.5f\n",average);
}
void main()
{
int n;
printf("enter size:\n");
scanf("%d",&n);
int *arr=malloc(n*sizeof(int));
printf("enter elems:\n");
for(int i=0;i<n;i++)
scanf("%d",&arr[i]);
int k;
printf("enter k:\n");
scanf("%d",&k);
maxAverage(arr,k,n);
}
Given nums = [1, 12, -5, -6, 50, 3], k = 3
Return 15.667 // (-6 + 50 + 3) / 3 = 15.667
本文介绍了一种寻找给定数组中长度大于等于k的最大平均值子数组的算法实现。通过遍历数组并计算所有可能子数组的平均值来确定最大平均值。
398

被折叠的 条评论
为什么被折叠?



