显然,B[i] 是从a的左边乘到 i - 1,再从a的右边乘到 i + 1,所以我们只需要两次遍历数组 a 即可
class Solution {
public int[] constructArr(int[] a) {
if(a.length == 0)
return new int[0];
int[] b = new int[a.length];
int t = a[0];
b[0] = 1;
for(int i = 1; i < a.length; i++){
b[i] = t;
t *= a[i];
}
t = a[a.length - 1];
for(int i = a.length - 2; i >= 0; i--){
b[i] *= t;
t *= a[i];
}
return b;
}
}