描述
给定一个由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;
}
};
本文介绍了一种算法,用于从给定的整数数组中找到指定长度的最大平均值子数组。通过滑动窗口的方法实现,适用于面试和技术挑战。
722

被折叠的 条评论
为什么被折叠?



