【剑指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;
    }
posted @ 2020-05-07 12:32  qxlxi  阅读(71)  评论(0编辑  收藏  举报