给定一个由n个整数组成的数组,找到给定长度k的连续子数组,该子数组具有最大平均值。你需要输出最大平均值。
样例
样例1
输入: nums = [1,12,-5,-6,50,3] and k = 4
输出: 12.75
解释:
最大平均为(12-5-6+50)/4 = 51/4 = 12.75
样例2
输入: nums = [4,2,1,3,3] and k = 2
输出: 3.00
解释:
最大平均为(3+3)/2 = 6/2 = 3.00
注意事项
1 <= k <= n <= 30,000.
给定数组的元素范围是[-10,000, 10,000]。
class Solution {
public:
/**
* @param nums: an array
* @param k: an integer
* @return: the maximum average value
*/
double findMaxAverage(vector<int> &nums, int k) {
// Write your code here
int sum=0;
int len = nums.size();
for (int i = 0; i < k; i++) {
/* code */
sum+=nums[i];
}
int Max=sum;
for (int i = k; i < len; i++) {
/* code */
sum-=nums[i-k];
sum+=nums[i];
Max=max(sum,Max);
}
return (double)Max/k;
}
};