上三角和下三角,这个思路比较有意思,其实正常的逻辑是遍历数组然后跳过某些值,但是这样的循环很烦躁,太暴力了,时间是 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; }