子数组算法乘O(n),不许用除法

262 阅读1分钟

function multiply(arr)
{
    var res = [], index = 1;
    res[0] = 1;
    
    for(var i = 0;i < arr.length-1;i++) {
        res[index] = res[index-1] * arr[i];
        index++;
    }
    console.log(res)
    
    var temp = arr[arr.length-1], index = res.length-2;
    for(var i = arr.length-2;i >= 0;i--) {
        res[i] *= temp;
        temp *= arr[index--];
    }
    return res;
}

var m = multiply([1, 2, 3, 4])
// console.log(m)