Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].
Solve it without division and in O(n).
Solve it without division and in O(n).
For example, given [1,2,3,4], return [24,12,8,6].
思路:前后遍历了两次,对于一个nums[i],第一遍便利记录在nums[i]之前的数组元素的乘积。第二遍遍历再让第一次遍历的结果乘以在nums[i]之后元素的乘积就可以了
代码如下:
class Solution {
public:
vector<int> productExceptSelf(vector<int>& nums) {
int size=nums.size();
vector<int>res(size,1);
for(int i=1;i<size;i++)
res[i]=res[i-1]*nums[i-1];
int temp=1;
for(int i=size-1;i>=0;i--)
{
res[i]*=temp;
temp*=nums[i];
}
return res;
}
};