题目描述:给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。
代码解析:先求出数组前k个元素的和,再逐个向后比较。
代码:
class Solution {
public:
double findMaxAverage(vector<int>& nums, int k) {
double sum=0,res=INT_MIN;
for(int i=0;i<nums.size();++i){
if(i<k) sum+=nums[i];
else{
res=max(sum,res);
sum+=nums[i]-nums[i-k];
}
}
res=max(sum,res);
return res/k;
}
};