构建乘积数组

原创 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实现】剑指offer52--构建乘积数组

题目:  给定一个数组 A[0,1,...,n-1 ],请构建一个数组 B[0,1,...,n-1]     。 其中 B 中的元素 B[i]=A[0]∗ A[1] ∗...∗ A[i−1]∗A[i...
  • Rebirth_Love
  • Rebirth_Love
  • 2016年06月08日 13:08
  • 572

剑指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]。不...
  • kangaroo835127729
  • kangaroo835127729
  • 2015年04月17日 14:28
  • 1676

构建乘积数组(Java实现)

本题为剑指offer面试题53 牛客网测试地址:https://www.nowcoder.com/questionTerminal/94a4d381a68b47b7a8bed86f2975db46 ...
  • zjkC050818
  • zjkC050818
  • 2017年05月29日 10:30
  • 702

《剑指offer》构建乘积数组

【 声明:版权所有,转载请标明出处,请勿用于商业用途。  联系信箱:libin493073668@sina.com】 题目链接:http://www.nowcoder.com/p...
  • libin1105
  • libin1105
  • 2015年09月13日 15:42
  • 1025

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]。不能使用除法...
  • u014282557
  • u014282557
  • 2017年06月03日 16:47
  • 232

剑指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...
  • baidu_21578557
  • baidu_21578557
  • 2016年05月22日 09:11
  • 2809

52 - 构建乘积数组

题目: 给定一个数组 A[0,1,...,n−1A[0,1,...,n-1],请构建一个数组 B[0,1,...,n−1]B[0,1,...,n-1]。 其中 BB 中的元素 B[i]=A[0]∗...
  • quzhongxin
  • quzhongxin
  • 2015年08月01日 10:16
  • 1187

数组:构建乘积数组

题目描述 给定一个数组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]。不...
  • qq_20176495
  • qq_20176495
  • 2017年06月05日 20:20
  • 92

数组------构建乘积数组

题目描述: 给定数组A[n] = {0, 1, …, n-1},要求构建一个数组B[n],使得B[i] = A[0]A[1]…A[i-1]A[i+1]…A[n-1].并且不能使用除法. 分析: ...
  • hy3686_1991
  • hy3686_1991
  • 2016年08月08日 09:29
  • 108

构建乘积数组(数组)

题目描述:给定一个数组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]。不...
  • DirBee
  • DirBee
  • 2017年11月30日 11:23
  • 19
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:构建乘积数组
举报原因:
原因补充:

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