剑指offer 构建乘积数组(C++)
原创
©著作权归作者所有:来自51CTO博客作者wx63a03d571f3d9的原创作品,请联系作者获取转载授权,否则将追究法律责任
题目描述
给定一个数组
,请构建一个数组
,其中B中的元素
。不能使用除法。(注意:规定
)
解题思路
- 构建一个函数,用于计算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;
}
};