构建乘积数组
构建乘积数组
http://www.nowcoder.com/questionTerminal/94a4d381a68b47b7a8bed86f2975db46
上三角和下三角,这个思路比较有意思,其实正常的逻辑是遍历数组然后跳过某些值,但是这样的循环很烦躁,太暴力了,时间是 n^2,现在有一种n的循环,只用遍历两次,前半部分分别算,后半部分分别算,保存起来再合并不就完美了
清晰思路代码:
public int[] multiply(int[] A) {
int [] b1=new int [A.length];
int [] b2=new int [A.length];
for(int i=0;i<A.length;i++){
if(i==0){
b1[i]=1;
}else{
b1[i]=b1[i-1]*A[i-1];
}
}
for(int i=A.length-1;i>=0;i--){
if(i==A.length-1){
b2[i]=1;
}else {
b2[i]=b2[i+1]*A[i+1];
}
}
for(int i=0;i<A.length;i++){
b1[i]=b1[i]*b2[i];
}
return b1;
}