题解 | #构建乘积数组#
构建乘积数组
https://www.nowcoder.com/practice/94a4d381a68b47b7a8bed86f2975db46
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
}
