描述
给定一个由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; } };