class Solution {
public:
    double findMaxAverage(std::vector<int>& nums, int k) {
        double curSum, maxAvg;
 
        for (int i = 0; i < k; i++) {
            curSum += nums[i];
        }
 
        maxAvg = curSum / (double)k;
        int beg = 0, end = k - 1;
 
        while (end < nums.size() - 1) {
            curSum = curSum - nums[beg++] + nums[++end];
            double newAvg = curSum / (double)k;
 
            if (newAvg > maxAvg) maxAvg = newAvg;
        }
 
        return maxAvg;
    }
};