题目
给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1]。不能使用除法。
思路
数组 B[i] = A[0]A[1]...A[i-1]A[i+1]...A[n-1],即除去 A[i] 的所有值相乘
可以将 A[i] 设为1,再用 for 循环将 A 中所有值相乘
临时变量 temp 先存储 A[i] 的值,然后再赋回来。
代码
public int[] multiply(int[] A) { int[] B = new int[A.length]; int temp = 0; for (int i = 0; i < A.length; i++) { temp = A[i]; A[i] = 1; B[i] = 1; for (int j = 0; j < A.length; j++) { B[i] *= A[j]; } A[i] = temp; } return B; }