package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param A int整型一维数组 * @return int整型一维数组 */ func multiply(A []int) []int { // write code here // B[i] = A[0] * A[1 ]* ... * A[i-1] * A[i+1] * ... * A[n-1](除 A[i] 以外的全部元素的的乘积) // B[0] 1 A[1] A[2] ... A[n-2] A[n-1] // B[1] A[0] 1 A[2] ... A[n-2] A[n-1] // ... // B[n-2] A[0] A[1] A[2] ... 1 A[n-1] // B[n-1] A[0] A[1] A[2] ... A[n-2] 1 B := make([]int, len(A)) B[0] = 1 for i := 1; i < len(A); i++ { B[i] = B[i-1] * A[i-1] } tmp := 1 for i := len(A) - 1; i >= 0; i-- { B[i] *= tmp tmp *= A[i] } return B }