给定一个数组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]。不能使用除法。
本题通过两次遍历实现:
第一次遍历 B[i] = A[0] * A[1] * …*A[i-1]
第二次遍历 使用temp保存后面部分的乘积,并更新B[i]
import java.util.ArrayList;
public class Solution {
public int[] multiply(int[] A) {
int [] B = new int [A.length];
int temp = 1;
B[0] = 1;
for(int i = 1 ; i < A.length; i++)
B[i] = B[i - 1] * A[i - 1];
for(int i = A.length - 2 ; i >= 0; i--){
temp = temp * A[i + 1];
B[i] = B[i] * temp;
}
return B;
}
}