思路

去除本身,两边所有元素的和,如果可以用除法,所有元素之积除以本身。不能用除法,其实左边是累积,右边是倒序的累积
先求两个辅助数组,累积数组和倒序累积数组。然后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;
    }
}