leecode 238除自身以外数组的乘积

时间:2019-06-03 23:41:56   收藏:0   阅读:125

技术分享图片

 

class Solution {
public:
    vector<int> productExceptSelf(vector<int>& nums) {
        //用除法必须要考虑元素为0的情况,用双重循环要考虑数组过大超时的情况
        //双指针双vector O(n)time O(n) space
        int n=nums.size();
        vector<int> frombegin(n+1,0);
        vector<int> fromend(n+1,0);
        vector<int> output(n);
        frombegin[0]=1,fromend[n]=1;
        for(int i=1;i<=n;i++){
            frombegin[i]=frombegin[i-1]*nums[i-1];
            fromend[n-i]=fromend[n-i+1]*nums[n-i];
        }
        for(int i=0;i<n;i++){
            output[i]=frombegin[i]*fromend[i+1];
        }
        return output;
    }
};

 

原文:https://www.cnblogs.com/joelwang/p/10970708.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!