1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| // @Title: 构建乘积数组 (构建乘积数组 LCOF)
// @Author: 15816537946@163.com
// @Date: 2022-02-22 15:02:21
// @Runtime: 24 ms
// @Memory: 9.1 MB
func constructArr(a []int) []int {
// initialization
tmp := 1
b := make([]int, len(a))
for i := range b {
b[i] = 1
}
for i := 1; i < len(a); i++ {
b[i] = b[i-1] * a[i-1] // 下三角
}
for i := len(a) - 2; i >= 0; i-- {
tmp *= a[i+1] // 上三角
b[i] *= tmp
}
return b
}
|