1. 程式人生 > >Java實現-陣列剔除元素後的乘積

Java實現-陣列剔除元素後的乘積

public class Solution {
    /**
     * @param A: Given an integers array A
     * @return: A Long array B and B[i]= A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1]
     */
    public ArrayList<Long> productExcludeItself(ArrayList<Integer> A) {
        // write your code
        if(A.size()==0){
			return null;
		}
		ArrayList<Long> C=new ArrayList<Long>();
		ArrayList<Long> D=new ArrayList<Long>();
		C.add((long) 1);
		Long temp1=(long)1;
		for(int i=0;i<A.size()-1;i++){
			temp1*=A.get(i);
			C.add(temp1);
		}
		Long temp2=(long)1;
		D.add((long) 1);
		for(int i=A.size()-1;i>0;i--){
			temp2*=A.get(i);
			D.add(temp2);
		}
        ArrayList<Long> B=new ArrayList<Long>();
        for(int i=0;i<A.size();i++){
        	B.add(C.get(i)*D.get(A.size()-i-1));
        }
		return B;

    }
}