1、链接:构建乘积数组
来源:牛客网
给定一个数组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]。不能使用除法。
2、思路,第一次遍历,将下三角每一行相乘后赋值给B数组,第二次遍历,将上三角乘到B中即可得到结果:
3、代码:
public int[] multiply(int[] A) {
int len = A.length;
int[] B = new int[len];
int[] C = new int[len];
int i;
B[0] = 1;
for(i = 0; i < len - 1; i++){
B[i+1] = B[i] * A[i];
}
C[len - 1] = 1;
for(i = len - 2; i >= 0; i--){
C[i] = C[i+1] * A[i+1];
B[i] = B[i] * C[i];
}
return B;
}