题目
分析
思路一:
暴力,O(N^2)
代码:
import java.util.ArrayList;
public class Solution {
public int[] multiply(int[] A) {
int[] B = new int[A.length];
if(A == null || A.length == 0) return null;
for(int i = 0; i < A.length; i++) {
int tmp = 1;
for(int j = 0; j < A.length; j++) {
if(j != i) {
tmp *= A[j];
}
}
B[i] = tmp;
}
return B;
}
}
思路二:
O(N)
代码:
import java.util.ArrayList;
public class Solution {
public int[] multiply(int[] A) {
if(A == null || A.length == 0) return null;
int len = A.length;
int[] B = new int[len];
B[0] = 1;
for(int i = 1; i <= len - 1; i++) {
B[i] = B[i - 1] * A[i - 1];
}
int tmp = 1;
for(int i = len - 2; i >= 0; i--) {
tmp *= A[i + 1];
B[i] *= tmp;
}
return B;
}
}