不能使用除法,参考题解剑指 Offer 66. 构建乘积数组(表格分区,清晰图解) - 构建乘积数组 - 力扣(LeetCode) (leetcode-cn.com),那就要分别维护 i 左侧和右侧的乘积值
下三角的计算:
上三角的计算:
class Solution {
public:
vector<int> constructArr(vector<int>& a) {
int len_a = a.size();
vector<int> B(len_a, 1);
for( int i = 1 ; i < len_a; i ++ ){
B[i] *= B[i - 1] * a[i - 1];
}
int tmp = 1;
for( int j = len_a - 1; j >= 0; j --){
B[j] *= tmp;
tmp *= a[j];
}
return B;
}
};