Problem:643. 子数组最大平均数 I
思路:定长滑动窗口模板题
Accode:
class Solution {
public:
double findMaxAverage(vector<int>& nums, int k) {
int len = nums.size();
int sum = 0;
double ans = -1e8;
for(int i=0;i<len;i++){
if(i+1>k){
sum-=nums[i-k];
}
sum+=nums[i];
if(i+1>=k){
ans = max(ans,(double)sum/k);
}
}
return ans;
}
};
时间复杂度:$o(n)$
前缀和应该也可以做,留给练习。