目录
643. 子数组最大平均数 I - 力扣(LeetCode)
- class Solution {
- public:
- double findMaxAverage(vector<int>& 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;
- }
- };