构建乘积数组

原创 2016年08月30日 13:52:37

题目:给定一个数组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]。不能使用除法。

思路:B[i] = A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1];C[i] = A[0]*A[1]*...*A[i-1],D[i] = A[i+1]*...*A[n-1]。C[i]自上而下来计算,即C[i] = C[i-1]*A[i-1];D[i]自下而上来计算,即D[i] = D[i+!]*A[i+1]。时间复杂度为O(n)。

  public int[] multiply(int[] A) {
        if(A == null || A.length <= 0){
            return null;
        }
        int length = A.length;
        int[] B = new int[length];
        int[] forword = new int[length];
        int[] back = new int[length];
        forword[0] = 1;
        back[length-1] = 1;
        for(int i=1;i<length;i++){
            forword[i] = forword[i-1]*A[i-1];
        }
        for(int i=length-2;i>=0;i--){
            back[i] = back[i+1]*A[i+1];
        }
        for(int i=0;i<length;i++){
            B[i] = forword[i]*back[i];
        }
        return B;
    }


相关文章推荐

构建乘积数组(Java实现)

本题为剑指offer面试题53 牛客网测试地址:https://www.nowcoder.com/questionTerminal/94a4d381a68b47b7a8bed86f2975db46 ...

剑指offer46--乘积数组的构建

已知数组A,通过乘积的方式构建一个数组B,并将数组B进行返回

构建乘积数组(利用辅助空间+剑指offer)

构建乘积数组 参与人数:890时间限制:1秒空间限制:32768K通过比例:37.82%最佳记录:0 ms|8552K(来自  Cry) 题目描述 给定一个数组A[0,1...

构建乘积数组--剑指Offer

题目描述 : 给定一个数组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]。不能使...

剑指offer-面试题52-构建乘积数组

package case52_ArrayConstruction; /** * 题目:给定一个数组A[0,1,2,...,N-1],请构建一个数组B[0,1,2,...,N-1],其中B中的元素:...

构建乘积数组 java

题目描述 给定一个数组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...

剑指Offer--052-构建乘积数组

链接 牛客OJ:构建乘积数组 九度OJ:http://ac.jobdu.com/problem.php?pid=1508 GitHub代码: 051-构建乘积数组 C...
  • gatieme
  • gatieme
  • 2016年05月30日 21:04
  • 1092

剑指offer——构建乘积数组

题目描述:给定一个数组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]。不能使用除法。思路:把前半部分...

构建乘积数组

问题:给定一个数组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]....

LeetCode-238. Product of Array Except Self (JAVA)(构建乘积数组)

LeetCode-238. Product of Array Except Self (JAVA)(构建乘积数组) 剑指offer
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:构建乘积数组
举报原因:
原因补充:

(最多只允许输入30个字)