238. 除自身以外数组的乘积
算法
- 前缀积数组
pre
:pre[i]
表示nums[0]
到nums[i - 1]
的乘积- 用于保存当前元素之前所有元素的乘积
- 后缀积变量
sub
:- 在第二次遍历时,通过一个变量动态记录从右到左的乘积(即
nums[i + 1]
到nums[n - 1]
的乘积) - 每次更新
pre[i]
为pre[i] * sub
(计算结果数组),并更新sub
- 在第二次遍历时,通过一个变量动态记录从右到左的乘积(即
复杂度分析
- 前缀积遍历一次,后缀积遍历一次,时间复杂度为
O(n)
- 使用了一个前缀积数组和一个后缀积变量,空间复杂度为
O(n)
C++ 代码
|
|
Python 代码
|
|
Go 代码
|
|