题目描述:
主要思路:
正逆各扫一遍,利用数组存储当前数左边和右边的乘积。
cpp
class Solution {
public:
vector<int> productExceptSelf(vector<int>& nums) {
int n=nums.size();
vector<int> ans;
int l[n+1],r[n+1];
l[0]=1,r[n]=1;
for(int i=n-1;i>=0;--i)
r[i]=r[i+1]*nums[i];
for(int i=0;i<n;++i)
{
ans.push_back(r[i+1]*l[i]);
l[i+1]=l[i]*nums[i];
}
return ans;
}
};