递推
class Solution {
public:
vector<int> constructArr(vector<int>& a) {
//递推,《算法与程序设计》课上遇到过,一时半会忘了
/*找规律
a1a2a3a4
a2a3a4 a0
a3a4 a0a1
a4 a0a1a2
a0a1a2a3
*/
if(a.empty()){
return {};
}
int left[100000],right[100000];
int l=a.size();
vector<int> b(l);
left[l-1]=1,right[0]=1;
for(int i=l-2;i>=0;i--){
left[i]=left[i+1]*a[i+1];
}
for(int i=1;i<l;i++){
right[i]=right[i-1]*a[i-1];
}
for(int i=0;i<l;i++){
b[i]=left[i]*right[i];
}
return b;
}
};