1588. Sum of All Odd Length Subarrays

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public int sumOddLengthSubarrays(int[] arr) {
int sum = 0;

int[] prefixSums = new int[arr.length + 1]; // 前 i 个数字的和
for (int i = 1; i < prefixSums.length; i++) {
prefixSums[i] = prefixSums[i - 1] + arr[i - 1];
for (int j = 1; i - j >= 0; j += 2) {
sum += prefixSums[i] - prefixSums[i - j];
}
}

return sum;
}
}

References

1588. Sum of All Odd Length Subarrays