868. 子数组的最大平均值

描述

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

猜你喜欢

转载自blog.csdn.net/vestlee/article/details/80765111
今日推荐