半径为k的子数组平均值
class Solution {
public:
vector<int> getAverages(vector<int>& nums, int k) {
int n = nums.size();
vector<int> ans(n, -1);
if (k * 2 + 1 <= n) {
long long sum = accumulate(nums.begin(), nums.begin() + k * 2 + 1, 0LL);
for (int i = k; i + k < n; ++i) {
if (i != k) {
sum += nums[i + k] - nums[i - k - 1];
}
ans[i] = sum / (k * 2 + 1);
}
}
return ans;
}
};
ans(n,-1)
这是初始化长度为n的哈希表全部为-1
半径为k子数组的长度是k*2+1
`long long sum = accumulate(nums.begin(), nums.begin() + k * 2 + 1, 0LL);