643. 子数组最大平均数 I(C++)

//在leedcode里报错,不知道为什么。有个博客里也贴了一个答案(https://blog.csdn.net/xunalove/article/details/79304678),报错的情况和我一样。
class Solution {
public:
double findMaxAverage(vector& nums, int k) {
int len=nums.size();
double max=-100000;
double sum=0;
for(int i=0;i<=len-k;i++)
{
int count=0;
while(count<k)
{
sum+=nums[i+count];
count++;
}
sum=sum/k;
if(max<=sum)
max=sum;
sum=0;
}
return max;
}
};

但是这个思路却是可以的
class Solution {
public:
double findMaxAverage(vector& nums, int k) {
double res=0;
int tmp=0;
for(int i=0;i if(i tmp+=nums[i];
res=tmp;
continue;
}
tmp=tmp+nums[i]-nums[i-k];
if(tmp>res)
res=tmp;
}
return res/k;
}
};

1个回答

一开始max是负的。。。是不是一直没更新?

JonathanYan
JonathanYan 回复qq_20778015: for(int i=0;i<=len-k;i++),感觉这里第二个小于等于应该换成小于
大约一年之前 回复
qq_20778015
蓝莓山药 不是啊,程序里的max一定会更新的啊
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!