题目描述
给定一个数组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]。不能使用除法。
构建一个左乘积数和一个右乘积数 最后相乘得到结果
import java.util.*;
public class Solution {
public int[] multiply(int[] A) {
int n = A.length;
int[] left = new int[n];
left[0] = 1;
int[] right = new int[n];
right[n-1] = 1;
int l = 1;
int r = 1;
for(int i = 1; i < n; i++){
l *= A[i-1];
left[i] = l;
}
for(int i = n-2; i >=0 ; i--){
r = r * A[i+1];
right[i] = r;
}
for(int i = 0; i < n; i++){
A[i] = left[i] * right[i];
}
return A;
}
}