classSolution{public:
vector<int>productExceptSelf(vector<int>& nums){int len = nums.size();
vector<int>left(len,1),right(len,1);
vector<int>answar(len);for(int i =1;i<len;++i){
left[i]= left[i-1]*nums[i-1];}for(int i = len-2;i>=0;--i){
right[i]= right[i+1]*nums[i+1];}for(int i =0;i<len;++i){
answar[i]= left[i]* right[i];}return answar;}};
前缀积数组+后缀值
classSolution{public:
vector<int>productExceptSelf(vector<int>& nums){int len = nums.size();
vector<int>answar(len,1);int right =1;for(int i =1;i<len;++i){
answar[i]= answar[i-1]*nums[i-1];}for(int i = len-1;i>=0;--i){
answar[i]= answar[i]* right;
right *= nums[i];}return answar;}};
前缀积值+后缀积值
classSolution{public:
vector<int>productExceptSelf(vector<int>& nums){int len = nums.size();
vector<int>answar(len,1);int right =1,left =1;for(int i =0;i<len;++i){
answar[i]*= left;
left *= nums[i];
answar[len-1-i]*= right;
right *= nums[len-1-i];}return answar;}};