描述
给定一个由n
个整数组成的数组,找到给定长度k
的连续子数组,该子数组具有最大平均值。你需要输出最大平均值。
1 <= k <= n <= 30,000
.
给定数组的元素将在范围[-10,000, 10,000]
。
您在真实的面试中是否遇到过这个题?
是
样例
给定nums = [1,12,-5,-6,50,3]
, k = 4
,返回12.75
解释:
最大平均为(12-5-6+50)/4 = 51/4 = 12.75。
无难度题目,注意最后的转换即可。
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;
for(int i=0;i<k;i++){
sum+=nums[i];
}
int max=sum;
for(int i=k;i<nums.size();i++){
sum=sum+nums[i]-nums[i-k];
if(sum>max) max=sum;
}
return (double)max/k;
}
};