238. Product of Array Except Self

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了238. Product of Array Except Self相关的知识,希望对你有一定的参考价值。

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].

   

解题思路:

不使用除法,返回一个数组,数组中第i个元素的值为nums[1]*..nums[i-1]*nums[i+1]…nums[n-1]。

利用前n个元素的乘积数组和后n个数组的乘积数组,得到结果。

暂时是能达到60ms

class Solution {

public:

    vector<int> productExceptSelf(vector<int>& nums) {

        int n=nums.size();

        vector<int>a=vector<int>(n,0);

        a[0]=1;

        for(int i=1;i<n;i++){

            a[i]=a[i-1]*nums[i-1];

        }

        for(int i=n-1;i>0;i--){

            a[i-1]=a[i-1]*nums[i];

            nums[i-1]=nums[i]*nums[i-1];

        }

        //for(int i=0;i<n;i++)cout<<a[i]<<" ";

        return a;

    }

};

 

以上是关于238. Product of Array Except Self的主要内容,如果未能解决你的问题,请参考以下文章

238. Product of Array Except Self

LeetCode OJ 238. Product of Array Except Self 解题报告

238. Product of Array Except Self

238. Product of Array Except Self

238. Product of Array Except Self

238. Product of Array Except Self