import java.util.ArrayList;
public class Solution {
//B[i] 分成 left[i] * right[i];
//left[i + 1] = left[i] * A[i];
//right[i] = right[i + 1] * A[i + 1];
public int[] multiply(int[] A) {
int[] B = new int[A.length];
//left[0] = 1
B[0] = 1;
for(int i=0; i< B.length - 1; i++){
//第一次遍历,先把 left[i] 存进B[i]
B[i + 1] = B[i] * A[i];
}
//缓存 right[i + 1]
//最后一个元素的 right == 1
int tmp = 1;
//后续遍历,从倒数第二个元素开始
for(int i = A.length -2; i >= 0; i--){
//right[i] = right[i + 1] * A[i + 1]
tmp = tmp * A[i + 1];
//第二次遍历,把 left[i] * right[i] 存进 B[i]
//B[i] = right[i] * left[i]
B[i] = tmp * B[i];
}
return B;
}
}