思路
去除本身,两边所有元素的和,如果可以用除法,所有元素之积除以本身。不能用除法,其实左边是累积,右边是倒序的累积
先求两个辅助数组,累积数组和倒序累积数组。然后B[i]=help1[i-1]*help[i+1];
代码
public class Solution {
public int[] multiply(int[] A) {
int n=A.length;
int[] B=new int[n];
int[] help1=new int[n];
int[] help2=new int[n];
help1[0]=A[0];
for(int i=1;i<n;i++){
help1[i]=A[i]*help1[i-1];
}
help2[n-1] = A[n-1];
for(int i=n-2;i>=0;i--){
help2[i]=A[i]*help2[i+1];
}
B[0]=help2[1];
B[n-1]=help1[n-2];
for(int i=1;i<=n-2;i++){
B[i]=help1[i-1]*help2[i+1];
}
return B;
}
} 
京公网安备 11010502036488号