Product of Array Except Self

来源:互联网 发布:2016高校网络舆情事件 编辑:程序博客网 时间:2024/06/06 15:02
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).

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;    }};


0 0