欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

剑指offer--构建乘法数组

程序员文章站 2022-07-12 09:29:57
...
题目描述

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



public class 构建乘积数组 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

    public int[] multiply(int[] A) {
    	int len = A.length;
    	int[] B = new int[len];
    	B[0] = 1;
    	for (int i = 1; i < B.length; i++) {
			B[i] = A[i-1] * B[i-1];
		}
    	int temp = 1;
    	for (int i = len-1; i >= 0; i--) {
			B[i] *= temp;
			temp *= A[i];
		}
		return B;
    }
}