版权声明:本文为原创博客,未经允许,请勿转载。 https://blog.csdn.net/u013095333/article/details/88600749
题目描述
给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。
链接
代码
class Solution {
public:
vector<int> multiply(const vector<int>& A) {
vector<int> first;
vector<int> last;
vector<int> ans;
if(A.size() == 0){
return ans;
}
int temp = 1;
for(int i = 0; i < A.size(); i++){
temp = temp * A[i];
first.push_back(temp);
}
temp = 1;
for(int i = A.size() - 1; i >= 0; i--){
temp = temp * A[i];
last.push_back(temp);
}
for(int i = 0; i < A.size(); i++){
if(i == 0){
ans.push_back(last[A.size() - 2]);
}
else if(i == A.size() - 1){
ans.push_back(first[A.size() - 2]);
}
else{
ans.push_back(first[i-1] * last[A.size() - 2 - i]);
}
}
return ans;
}
};