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 代码
|
|