【剑指offer】 66.构建乘积数组
66.构建乘积数组
面试题66. 构建乘积数组
难度简单16
给定一个数组 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]。不能使用除法。示例:
输入: [1,2,3,4,5] 输出: [120,60,40,30,24]
public int[] constructArr(int[] a) {
if(a.length == 0) return new int[0];
int length = a.length;
int [] b = new int [length];
b[0] = 1;
int tmp = 1;
for(int i=1;i<length;i++){
b[i] = b[i-1] * a[i-1];
}
for(int i=length-2;i>=0;i--){
tmp *= a[i+1];
b[i] *= tmp;
}
return b;
}