题目描述
给定一个数组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]。不能使用除法。
代码
思路:构建前向乘积数组C[i]=A[0]A[1]…*A[i-1],即C[i]=C[i-1]*A[i-1];
构建后向乘积数组D[i]=A[n-1]A[n-2]…A[n-i+1],即D[i]=D[i+1]*A[i+1];
通过C[i],D[i]来求B[i]:B[i]=C[i]*D[i]
function multiply(array)
{
// write code here
var len=array.length;
var arr=[];
if(array==null||len<=0) return ;
arr[0]=1;
for(var i=1;i<len;i++){
arr[i]=arr[i-1]*array[i-1]//完成所有元素中i前面的乘法
}
var temp=1
for(var i=len-2;i>=0;i--){
temp*=array[i+1]
arr[i]*=temp
}
return arr;
}