剑指offer JavaScript版 (51)

构建乘积数组

题目描述

给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。

  • 将数组B元素分隔成前i-1项和后i+1项的乘积
  • 先算i-1项,后算i+1项
function multiply(array)
{
    // write code here
    const B=[];
    B[0]=1;
    let tmp=1;
    for(var i=1;i<array.length;i++){
        B[i]=B[i-1]*array[i-1]
    }
    for(var i=array.length-2;i>=0;i--){
        tmp*=array[i+1];
        B[i]*=tmp;
    }
    return B;
}
发布了93 篇原创文章 · 获赞 3 · 访问量 2488

猜你喜欢

转载自blog.csdn.net/Damp_XUN/article/details/99234002