leetcode 643. 子数组最大平均数 I(Maximum Average Subarray I)
题目描述:
给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。
示例 1:
输入: [1,12,-5,-6,50,3], k = 4
输出: 12.75
解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75
注意:
- 1 <=
k<=n<= 30,000。 - 所给数据范围 [-10,000,10,000]。
解法:
class Solution {
public:
double findMaxAverage(vector<int>& nums, int k) {
long long sum_val = 0;
int sz = nums.size();
for(int i = 0; i < k; i++){
sum_val += nums[i];
}
long long max_val = sum_val;
for(int i = k; i < sz; i++){
sum_val += nums[i] - nums[i-k];
max_val = max(sum_val, max_val);
}
return 1.0*max_val/k;
}
};

浙公网安备 33010602011771号