• 難度分: 1358 sample
  • 這題一樣是定長度的 sliding window,但要做一下轉換,半徑為 k,代表 window_size 為 2k+1
class Solution {
public:
    vector<int> getAverages(vector<int>& nums, int k) {
        int n = nums.size();
        int m = 2*k+1;
        vector<int> res(n, -1);
        if (m > n) return res;
        long long sum = 0;
        for (int i = 0; i < m; i++) {
            sum += nums[i];
        }
        res[k] = sum / m;
        for (int i = m, j = k+1; i < n; i++, j++) {
            sum += (nums[i] - nums[i-m]);
            res[j] = sum / m;
        }
        return res;
    }
};