【题目】给定一个数组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 }
时间: 2024-10-23 22:16:47