子数组最大平均数 I
分析
其实要求连续就是等于某一段前缀和,把前缀和算一下就好了
class Solution {
public:
double findMaxAverage(vector<int>& nums, int k) {
if (!nums.size())return 0;
int pre[3000 + 100];
pre[0] = nums[0];
for (int i = 1; i < nums.size(); i++)pre[i] = pre[i - 1] + nums[i];
int ans =pre[k-1];
// 1,12,-5,-6,50,3
for (int i = k-1; i < nums.size(); i++) {
ans = max(ans, pre[i] - pre[i - k+1]+nums[i-k+1]);
}
return ans * 1.0 / k;
}
};