解题思路:
(1)先求出初始k个值的总和,最为初始的最大值
(2)使用两个指针,一个保持当前的窗口中k个数的总和sum
(3)一个用来记录当前所有窗口中的最大值max,判断更新
class Solution {
public:
double findMaxAverage(vector<int>& nums, int k) {
int max = 0,temp;
for(int i=0;i<k;i++) max+=nums[i];
int sum = max;
for(int i=k;i<nums.size();i++) {
temp = sum+nums[i]-nums[i-k];
if(temp>max) max = temp;
sum = temp;
}
return max/(double)k;
}
};