publicint[] multiply(int[] A) { if (A == null || A.length <= 1) { returnnull; } int len = A.length; // 新建B并初始化B int[] B = newint[len]; for (int i = 0; i < len; i++) { B[i] = 1; } int left = 1, right = 1; // 从B[1]开始计算left for (int i = 1; i < len; i++) { left *= A[i - 1]; B[i] = left; } // 从B[n-2]开始计算right for (int j = len - 2; j >= 0; j--) { right *= A[j + 1]; B[j] *= right; } return B; }