可以使用这张图来辅助理解,蓝色的部分在第一次循环中,红色的部分在第二次循环中。
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; } }