可以使用这张图来辅助理解,蓝色的部分在第一次循环中,红色的部分在第二次循环中。

import java.util.ArrayList;
public class Solution {
    public int[] multiply(int[] A) {
        int[] b=new int[A.length];
        int multi = 1;
        b[0] = 1;
        for(int i=1;i<A.length;i++){
            multi *= A[i-1];
            b[i] = multi;
        }
        
        multi = 1;
        for(int i=A.length-2;i>=0;i--){
            multi *= A[i+1];
            b[i] *= multi;
        }
        
        return b;
    }
}