题目描述:
给定一个数组,请构建一个数组,其中B中的元素。不能使用除法。
思路:
如图所示:需要计算的可以分成两部分求解,按照对角线划分为两部分。前半部分定义为,后半部分定义为,
class Solution {
public:
vector<int> multiply(const vector<int>& A) {
if(A.size()<2)
return {};
int n=A.size();
vector<int> res(n);
res[0]=1;
for(int i=1;i<n;i++){
res[i]=res[i-1]*A[i-1];
}
int temp=1;
for(int i=n-2;i>=0;i--){
temp*=A[i+1];
res[i]*=temp;
}
return res;
}
};