• 剑指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 }
  • 相关阅读:
    gvim : invalid input string
    端口
    Sequence Overview
    vi的使用
    Ubuntu安装CodeBlocks相关问题总结
    中断
    Ubuntu Software Repository
    UVA 12299 RMQ with Shifts
    UVA 12293 Box Game
    POJ 3468 A Simple Problem with Integers (1)
  • 原文地址:https://www.cnblogs.com/noaman/p/5539262.html
Copyright © 2020-2023  润新知