【劍指offer】 66.構建乘積數組

66.構建乘積數組

面試題66. 構建乘積數組

難度簡單16

給定一個數組 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]。不能使用除法。

示例:

輸入: [1,2,3,4,5]
輸出: [120,60,40,30,24]
public int[] constructArr(int[] a) {
        if(a.length == 0)   return new int[0];
        int length = a.length;
        int [] b = new int [length];
        b[0] = 1;
        int tmp = 1;
        for(int i=1;i<length;i++){
            b[i] = b[i-1] * a[i-1];
        }

        for(int i=length-2;i>=0;i--){
            tmp *= a[i+1];
            b[i] *= tmp;
        }
        return b;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章