题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个整数数组和数字 k,要求给出其中 k 个长度的连续子数组平均数的最大值。

思路分享

代码解答(强烈建议自行解答后再看)

  • 滑动窗口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public:
double findMaxAverage(vector<int>& nums, int k) {
double max_average = -(numeric_limits<double>::max());
double sum = 0;

for (int i = 0; i < nums.size(); i++) {
sum += nums[i];

if (i < k - 1) continue;

if ((sum / k) > max_average) {
max_average = sum / k;
}

sum -= nums[i-k+1];
}
return max_average;
}
};