力扣2090.半径为k的子数组平均值
-
accumulate函数:求一段和(起始迭代器,终止迭代器,初始值)
-
class Solution { public: vector<int> getAverages(vector<int>& nums, int k) { int n = nums.size(); vector<int> res(n,-1); if(2*k+1 <= n) { //求nums里前2*k+1的和 并加上初值 0LL(一个值为0类型为LL的数) long long sum = accumulate(nums.begin(),nums.begin() + 2*k + 1,0LL); for(int i=k;i<n-k;i++) { if(i != k) sum += nums[i+k] - nums[i-k-1]; res[i] = sum/(2*k+1); } } return res; } };