643. 子数组最大平均数I(滑动窗口)

目录

一、题目

二、代码


一、题目

643. 子数组最大平均数 I - 力扣(LeetCode)

643. 子数组最大平均数I(滑动窗口)_第1张图片

 

二、代码

class Solution {
public:
    double findMaxAverage(vector& nums, int k) {
        double Average = INT_MIN;
        double sum = nums[0];
        int left = 0, right = 0;
        while (right < nums.size())
        {
            if (right - left + 1 == k)//满足长度为k
            {
                if (sum / (right - left + 1) > Average)
                {
                    Average = sum / (right - left + 1);
                    sum -= nums[left++];
                }
                else
                {
                    if (right + 1 == nums.size())
                    {
                        break;
                    }
                    sum += nums[++right];
                }
            }
            else if (right - left + 1 < k)
            {
                if (right + 1 == nums.size())
                {
                    break;
                }
                sum += nums[++right];
            }
            else//长度大于k,左指针右移
            {
                sum -= nums[left++];
            }
        }
        return Average;
    }
};

你可能感兴趣的:(牛客/力扣,算法,leetcode,职场和发展)