643. 子數組最大平均數 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]。
解法一
//時間複雜度O(n), 空間複雜度O(1)
class Solution {
public:
double findMaxAverage(vector<int>& nums, int k) {
long sum = 0;
for(int i = 0; i < k; i++) sum += nums[i];
int m = sum;
for(int i = k; i < nums.size(); i++) {
sum += (nums[i] - nums[i - k]);
if(sum > m) m = sum;
}
return (double)m / k;
}
};
按照題目意思求每個子序列的和,記錄最大值,最後求平均輸出即可。