剑指offer系列25---构建乘积数组

【题目】给定一个数组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 package com.exe6.offer;
 2 
 3 /**
 4  * 【题目】给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],
 5  *             其中B中的元素B[i]=A[0]A[1]…A[i-1]A[i+1]…A[n-1]。
 6  *             不能使用除法。
 7  * @author WGS
 8  *
 9  */
10 public class ConstructMultipleArray {
11 
12     public int[] mutilyArray(int[] A){
13         if(A==null || A.length<=0) return null;
14         int len=A.length;        
15         int[] frontArray=new int[len];
16         if(len<=1) return frontArray;
17         int[] backArray=new int[len];
18         frontArray[0]=backArray[len-1]=1;
19         
20         for(int i=1;i<len;i++){
21             frontArray[i]=frontArray[i-1]*A[i-1];
22             backArray[len-1-i]=backArray[len-i]*A[len-i];
23         }
24         for(int i=0;i<len;i++){
25             frontArray[i]=backArray[i];
26         }
27         return frontArray;
28         
29     }
30     public static void main(String[] args) {
31         int[] A=new int[]{1,2,3,4};
32         int[] arr=new ConstructMultipleArray().mutilyArray(A);
33         for(int i:arr){
34             System.out.print(i+" ");
35         }
36                 
37     }
38 
39 }
原文地址:https://www.cnblogs.com/noaman/p/5539262.html