问题:求一维数组任意子数组的元素和

思路

设有前缀和数组 pre[i] 代表原数组 arr[0]arr[i] 之间的元素和。 那么位置 (i,j) 的子数组的元素和可以表示为 pre[j]-pre[i-1]

代码示例

// 一维数组前缀和
var prefixSum = function (arr) {
    let pre = new Array(arr.length).fill(0);
    pre[0] = arr[0];
    for (let i = 0; i < arr.length; i++) {
        pre[i + 1] = pre[i] + arr[i + 1];
    }
    return pre;
}