【题目】
给定一个数组 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]。 不能使用除法。
【思路】
【代码】
// 构建乘积数组
public static int[] multiply(int[] A) {
int B[] = new int[A.length];
if (A.length == 0) {
return B;
}
B[0] = 1;
// 下三角
for (int i = 1; i < A.length; i++) {
B[i] = B[i - 1] * A[i - 1];
}
int tmp = 1;
// 上三角
for (int i = A.length - 1; i >= 0; i--) {
B[i] *= tmp;
tmp *= A[i];
}
return B;
}