deno.land / x / masx200_leetcode_test@10.6.5 / gou-jian-cheng-ji-shu-zu-lcof / index.ts

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function constructArr(a: number[]): number[] { if (a.length <= 1) return a; const length = a.length; const answer = new Array<number>(length);
// answer[i] 表示索引 i 左侧所有元素的乘积 // 因为索引为 '0' 的元素左侧没有元素, 所以 answer[0] = 1 answer[0] = 1; for (let i = 1; i < length; i++) { answer[i] = a[i - 1] * answer[i - 1]; }
// R 为右侧所有元素的乘积 // 刚开始右边没有元素,所以 R = 1 let R = 1; for (let i = length - 1; i >= 0; i--) { // 对于索引 i,左边的乘积为 answer[i],右边的乘积为 R answer[i] = answer[i] * R; // R 需要包含右边所有的乘积,所以计算下一个结果时需要将当前值乘到 R 上 R *= a[i]; } return answer;}
export default constructArr;
masx200_leetcode_test

Version Info

Tagged at
a year ago