题目描述

给定一个数组剑指offer 构建乘积数组(C++)_i++,请构建一个数组剑指offer 构建乘积数组(C++)_代码实现_02,其中B中的元素剑指offer 构建乘积数组(C++)_i++_03。不能使用除法。(注意:规定剑指offer 构建乘积数组(C++)_i++_04

解题思路

  • 构建一个函数,用于计算B[i]的值。
  • 注意B需要提前扩容。

代码实现

class Solution {
public:
int everymultiply(const vector<int>& A, int i)
{
int sum = 1, count = 0;
for(; count < A.size(); count++)
{
if(count == i)
continue;
sum *= A[count];
}
return sum;
}
vector<int> multiply(const vector<int>& A) {
vector<int> B(A.size());
if(A.size() == 0)
return {};
int i = 0;
for(; i < B.size(); i++)
B[i] = everymultiply(A, i);
return B;
}
};