题解 | 构建乘积数组

构建乘积数组

https://www.nowcoder.com/practice/94a4d381a68b47b7a8bed86f2975db46

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param A int整型vector 
     * @return int整型vector
     */
    vector<int> multiply(vector<int>& A) {
        int n = A.size();
        vector<int> pre(n,1);
        pre[0] = A[0];
        for(int i = 1; i < n; i++){
            pre[i] = pre[i-1] * A[i];
        }
        vector<int> tail(n,1);
        tail[n - 1] = A[n - 1];
        for(int i = n - 2; i >= 0; i --){
            tail[i] = tail[i + 1] * A[i];
        }
        vector<int> B(n);
        B[0] = tail[1];
        B[n  -1 ] = pre[n  -2 ];
        for(int i = 1 ; i < n - 1; i ++){
            B[i] = pre[i-1] * tail[i + 1];
        }
        return B;
    }
};

全部评论
利用前缀乘和后缀乘获得
点赞 回复 分享
发布于 04-19 14:57 上海

相关推荐

03-25 19:00
东北大学 Java
程序员牛肉:太好了,是聊天记录。不得不信了。 当个乐子看就好,不要散播焦虑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务